基于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 相关文章推荐
jQuery的一些特性和用法整理小结
Jan 13 Javascript
点击隐藏页面左栏或右栏实现js代码
Apr 01 Javascript
js截取字符串的两种方法及区别详解
Nov 05 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
Jan 08 Javascript
js操作浏览器的参数方法
Jan 21 Javascript
JS实现按钮颜色切换效果
Sep 05 Javascript
微信小程序引入VANT组件的方法步骤
Sep 19 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
学前端,css与javascript重难点浅析
Jun 11 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
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
javascript 写类方式之一
2009/07/05 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
vue实现选中效果
2020/10/07 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
Python 模拟购物车的实例讲解
2017/09/11 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
师范应届生教师求职信
2013/11/05 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
体育教师自我鉴定
2014/02/12 职场文书
服装发布会策划方案
2014/05/22 职场文书
物流管理专业自荐信
2014/06/23 职场文书
通报表扬范文
2015/01/17 职场文书
面试通知单大全
2015/04/20 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
python脚本框架webpy模板赋值实现
2021/11/20 Python
索尼ICF-36收音机评测
2022/04/30 无线电