基于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 相关文章推荐
JS获取整个页面文档的实现代码
Dec 15 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
Dec 10 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
Feb 04 Javascript
js实现图片拖动改变顺序附图
May 13 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 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
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP分页显示制作详细讲解
2006/12/05 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
中文系师范生自荐信
2013/10/01 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
大学生个人求职信例文
2014/07/07 职场文书
婚礼答谢词
2015/01/04 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技