基于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中的delete运算符
Nov 30 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
七个很有意思的PHP函数
May 12 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
对node.js中render和send的用法详解
May 14 Javascript
vue实现未登录跳转到登录页面的方法
Jul 17 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
Vue CL3 配置路径别名详解
May 30 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 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获取网卡地址的代码
2008/04/09 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php错误日志简单配置方法
2016/07/11 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
python实现XML解析的方法解析
2019/11/16 Python
SQL语言面试题
2013/08/27 面试题
土木工程应届生求职信
2013/10/31 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
植树节活动总结
2014/04/30 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
mysql优化
2021/04/06 MySQL