基于mootools 1.3框架下的图片滑动效果代码

 更新时间:2011年04月22日 01:27:26   作者:  
容器采用相对定位,图片采用绝对定位,当鼠标移动到相应的图片上,改变去left属性,用tween实现动画效果.
效果预览如下:

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

代码分析:写一个picSlider类实现代码封装
复制代码 代码如下:

<div id="container">
<img src="//img.jbzj.com/file_images/article/201104/r_song1.jpg" alt="" />
<img src="//img.jbzj.com/file_images/article/201104/r_song2.jpg" alt="" />
<img src="//img.jbzj.com/file_images/article/201104/r_song3.jpg" alt="" />
<img src="//img.jbzj.com/file_images/article/201104/r_song4.jpg" alt="" />
<img src="//img.jbzj.com/file_images/article/201104/r_song5.jpg" alt="" />
</div>

CSS样式
复制代码 代码如下:

#container{width:459px; height:200px; background-color:Black;position:relative;overflow:hidden;}
#container img{position:absolute; width:360px;height:300px;display:block;top:0;width:280px;height:200px;}

JS:picSlider类
复制代码 代码如下:

var picSlider = new Class({
Implements: Options,
options: {
container: "container",
imgsWidth: 0.6,
},
initialize: function (options) {
this.setOptions(options);
this.container = $(this.options.container);
this.triggers = this.container.getElementsByTagName("img");
this.containerWidth = this.container.getSize().x; //get container's width
this.imgWidth = this.containerWidth * this.options.imgsWidth;
this.aveWidth = this.containerWidth / this.triggers.length;
this.newAveWidth = (this.containerWidth - this.imgWidth) / (this.triggers.length - 1);
this.setImgsInit(); //初始化图片展示
this.start();
},
setImgsInit:function(){
for(var i=0;i<this.triggers.length;i++){
this.triggers[i].setStyle("left",i*this.aveWidth);
}
},
start:function(){
for(var i=0;i<this.triggers.length;i++){
this.triggers[i].set("tween",{property:"left",duration:300, fps:80}); //为每个元素设置动画参数
this.triggers[i].addEvent("mouseover",this.slider.bindWithEvent(this,[i]));//绑定slider函数
}
},
slider:function(e,at){
e.stop();
for(var i=1;i<this.triggers.length;i++){
if(i<=at){
this.triggers[i].get("tween").start(i*this.newAveWidth);
}else{
this.triggers[i].get("tween").start(this.imgWidth+(i-1)*this.newAveWidth);
}
}
}
});
new picSlider();


如果想直接在本地运行,请引入
<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>后面,原因不解释!

相关文章

  • Mootools 1.2教程 Tooltips

    Mootools 1.2教程 Tooltips

    今天我们将来看一下MooTools绑定的Tooltip插件。通过“提示(Tips)”,你可以轻松地自定义一个包含一个标题和内容的工具提示,可以自定义样式,自定义淡入淡出渐变效果。
    2009-09-09
  • 使用Mootools动态添加Css样式表代码,兼容各浏览器

    使用Mootools动态添加Css样式表代码,兼容各浏览器

    这个函数很有用处,尤其是当我们在使用Mootools开发插件的时候,例如Tips等,当我们需要额外的Css来支撑插件内的效果时,通常我们的做法是把Css放到单独的css文件里调用
    2011-12-12
  • Mootools 1.2教程 Fx.Tween的使用

    Mootools 1.2教程 Fx.Tween的使用

    今天我们开始第三讲,我们今天主要看一下Fx.Tween。
    2009-09-09
  • MooBox 基于Mootools的对话框插件

    MooBox 基于Mootools的对话框插件

    这几天, 利用晚上的闲暇时间, 写了个mootools组件,原型来自于jQuery UI Dialog, 为防止重复,就起了名字叫mooBox.
    2012-01-01
  • Mootools 1.2教程 事件处理

    Mootools 1.2教程 事件处理

    我们学习了在MooTools 1.2中建立和使用函数的几种不同方式。下一步就是理解事件了。和选择器类似,事件也是建立互动界面的一个重要部分。
    2009-09-09
  • MooTools 1.2中的Drag.Move来实现拖放

    MooTools 1.2中的Drag.Move来实现拖放

    今天我们开始第十二讲,今天我们将仔细看一下Drag.Move——一个很强大的MooTools类,它可以让你给你的web应用添加拖放功能。
    2009-09-09
  • Mootools 1.2教程(2) DOM选择器

    Mootools 1.2教程(2) DOM选择器

    今天开始本系列教程的第2讲。在这一讲中,我们会学习几种选择HTML元素的方法。在许多方面,这是MooTools用得最多最基本的。毕竟,要创建一个基于HTML元素的交互性用户体验,你必须首先把它们掌握在手中。
    2009-09-09
  • Mootools 1.2教程 输入过滤第二部分(字符串)

    Mootools 1.2教程 输入过滤第二部分(字符串)

    今天我们来看一看MooTools给我们提供的额外的一些处理字符函数。这只是MooTools字符串处理中的一部分,并不包含一些神秘的函数(比如toCamelCase())和使用正则表达式处理字符串的函数。
    2009-09-09
  • Mootools 1.2教程 滑动效果(Slide)

    Mootools 1.2教程 滑动效果(Slide)

    今天继续我们的Mootools 1.2教程的第23课,我们今天来讲一下Fx插件中的Fx.Slide。通过该插件,可以让你把内容以滑动的方式显示出来。它使用起来非常简单,是你UI工具箱中一个很好的工具。
    2009-09-09
  • Mootools 1.2教程 滚动条(Slider)

    Mootools 1.2教程 滚动条(Slider)

    到现在为止,初始化这些MooTools插件对象就会开始变得越来越熟悉。滚动条(Slider)没有任何不同,你要创建一个新的滚动条,定义滚动条和滑块相关的元素,然后设置你的选项,再创建一些回调事件的控制函数。
    2009-09-09

最新评论