基于mootools1.3框架下的图片滑动

开发 前端
MooTools是一个简洁,模块化,面向对象的开源JavaScript web应用框架。本文介绍的是基于mootools1.3框架下的图片滑动,让我们一起来看。   

MooTools是一个简洁,模块化,面向对象的开源JavaScript web应用框架。它为web开发者提供了一个跨浏览器js解决方案。在处理js css html时候。它提供了一个比普通js更面向对象的document API。

效果预览如下:

[[22994]]

实现原理:

容器采用相对定位,图片采用绝对定位,当鼠标移动到相应的图片上,改变去left属性,用tween实现动画效果.

代码分析:写一个picSlider类实现代码封装

  1. <div id="container">          
  2. <img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song1.jpg" alt="" />          
  3. <img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song2.jpg" alt="" />          
  4. <img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song3.jpg" alt="" />          
  5. <img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song4.jpg" alt="" />          
  6. <img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song5.jpg" alt="" />      
  7. </div> 

CSS样式

  1. #container{width:459px; height:200px; backgroundcolor:Black;position:relative;overflow:hidden;  
  2. #container img{position:absolute;width:360px;height:300px;display:block;top:0;width:280px;height:200px;} 

JS:picSlider类

  1. var picSlider = new Class(  
  2. {   
  3. Implements: Options, options:   
  4. {   
  5. container: "container", imgsWidth: 0.6,   
  6. },   
  7. initialize: function (options)   
  8. {   
  9. this.setOptions(options);   
  10. this.container = $(this.options.container); this.triggers = this.container.getElementsByTagName  
  11. ("img");   
  12. this.containerWidth = this.container.getSize().x;   
  13. //get container's width this.imgWidth = this.containerWidth * this.options.imgsWidth; this.aveWidth = this.containerWidth   
  14. this.triggers.length; this.newAveWidth = (this.containerWidth - this.imgWidth)   
  15. / (this.triggers.length - 1); this.setImgsInit();   
  16. //初始化图片展示 this.start(); },   
  17. setImgsInit:function(){   
  18. for(var i=0;i<this.triggers.length;i++)  
  19. {   
  20. this.triggers[i].setStyle("left",i*this.aveWidth);   
  21. } },   
  22. start:function(){   
  23. for(var i=0;i<this.triggers.length;i++){   
  24. this.triggers[i].set("tween",{property:"left",duration:300, fps:80});   
  25. //为每个元素设置动画参数   
  26. this.triggers[i].addEvent("mouseover",this.slider.bindWithEvent(this,[i]));  
  27. //绑定slider函数 }   
  28. },   
  29. slider:function(e,at){   
  30. e.stop();   
  31. for(var i=1;i<this.triggers.length;i++){   
  32. if(i<=at){   
  33. this.triggers[i].get("tween").start(i*this.newAveWidth);   
  34. }else{   
  35. this.triggers[i].get("tween").start(this.imgWidth+(i-1)*this.newAveWidth);   
  36. } } }});  
  37. new picSlider(); 

如果想直接在本地运行,请引入

  1. <script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.1/mootools-yui-compressed.js"></script><script type="text/javascript" src="home.js"></script> 

这个脚本必须在<div><div>后面,原因不解释!

请问哪位朋友知道怎么在效果预览里面引入JS框架,好像不支持!有知道的吗?

【编辑推荐】
 

  1. 4.4.5 Mootools
  2. mooTools和moo.fx
  3. MooTools团队成员:我们为何强于jQuery
  4. JavaScript web应用框架Mootools 1.2.1发布
责任编辑:于铁 来源: 博客园
相关推荐

2022-11-11 10:56:37

2009-06-01 10:47:32

jboss seam例jboss seam开jboss seam

2015-09-22 10:49:40

Android滑动渐变

2011-07-01 11:02:30

EnyowebOShello world

2021-08-19 11:51:37

Commvault

2021-07-16 09:54:49

鸿蒙HarmonyOS应用

2011-07-01 10:52:59

EnyowebOS 3.0 S

2010-06-21 17:08:10

Java框架ScalaSpring

2010-10-15 09:52:00

XephyrMeeGoQt

2020-02-20 15:19:56

JavaSQL注入

2009-06-19 16:05:39

时间类型Struts

2021-10-14 09:53:38

鸿蒙HarmonyOS应用

2011-06-16 16:41:20

Qt MeeGo SDK

2011-06-24 16:41:14

QT OpenCV 框架

2024-01-04 23:55:53

2014-08-29 09:54:46

KJFrameForA

2014-07-21 17:48:09

PhoneGapCordovaHtml5

2017-10-02 16:13:47

深度学习目标检测计算机视觉

2021-11-02 14:52:17

鸿蒙HarmonyOS应用

2011-10-31 09:26:10

jQuery
点赞
收藏

51CTO技术栈公众号