基于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 ajax 路由和过滤器使用说明
Aug 02 Javascript
javascript权威指南 学习笔记之null和undefined
Sep 25 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
javascript RegExp 使用说明
May 21 Javascript
有趣的bootstrap走动进度条
Dec 01 Javascript
详解webpack提取第三方库的正确姿势
Dec 22 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 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
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
JavaScript 高级语法介绍
2009/06/15 Javascript
JS高级笔记
2011/07/13 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
Python文件操作基本流程代码实例
2017/12/11 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
Python单元测试与测试用例简析
2019/11/09 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
单位介绍信范文
2014/01/18 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
运动会通讯稿100字
2015/07/20 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis