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


Posted in Javascript onApril 22, 2011

效果预览如下:
基于mootools 1.3框架下的图片滑动效果代码
实现原理:
容器采用相对定位,图片采用绝对定位,当鼠标移动到相应的图片上,改变去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>后面,原因不解释!

Javascript 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
js 文件引入实现代码
Apr 23 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
JavaScript获取function所有参数名的方法
Oct 30 Javascript
使用JS代码实现点击按钮下载文件
Nov 12 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
Aug 08 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 Javascript
全面解析JavaScript Module模式
Jul 24 Javascript
25个好玩的JavaScript小游戏分享
Apr 22 #Javascript
jQuery Ajax 实例全解析
Apr 20 #Javascript
基于jQuery的为attr添加id title等效果的实现代码
Apr 20 #Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 #Javascript
编写自己的jQuery插件简单实现代码
Apr 19 #Javascript
提升你网站水平的jQuery插件集合推荐
Apr 19 #Javascript
分享20款好玩的jQuery游戏
Apr 17 #Javascript
You might like
基于mysql的论坛(2)
2006/10/09 PHP
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
清除输入框内的空格
2016/12/21 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
PyCharm代码格式调整方法
2018/05/23 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Weblogic的布署方式
2013/08/23 面试题
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
机关门卫岗位职责
2013/12/30 职场文书
2014年度工作总结报告
2014/12/15 职场文书
创业计划书之家教中心
2019/09/25 职场文书
Python基础之数据结构详解
2021/04/28 Python
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers