基于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 相关文章推荐
JavaScript 页面坐标相关知识整理
Jan 09 Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
jquery获取子节点和父节点的示例代码
Sep 10 Javascript
Javascript中Date类型和Math类型详解
Feb 27 Javascript
Three.js学习之Lamber材质和Phong材质
Aug 04 Javascript
jquery仿微信聊天界面
May 06 jQuery
JavaScript贪吃蛇小组件实例代码
Aug 20 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
Sep 28 Javascript
JS实现旋转木马轮播图
Jan 01 Javascript
Vue 实现登录界面验证码功能
Jan 03 Javascript
uniapp开发小程序的经验总结
Apr 08 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
轻松修复Discuz!数据库
2008/05/03 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
python读取oracle函数返回值
2016/07/18 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
pymysql 开启调试模式的实现
2019/09/24 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
通信工程毕业生求职信
2013/11/16 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
安全生产月活动总结
2014/05/04 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
作息时间调整通知
2015/04/22 职场文书
裁员通知
2015/04/25 职场文书
家庭经济困难证明
2015/06/23 职场文书