基于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之对系统的toFixed()方法的修正
May 08 Javascript
Extjs学习笔记之六 面版
Jan 08 Javascript
JavaScript 空位补零实现代码
Feb 26 Javascript
js 返回时间戳所对应的具体时间
Jul 20 Javascript
js转义字符介绍
Nov 05 Javascript
jquery ajax局部加载方法详解(实现代码)
May 12 Javascript
基于es6三点运算符的使用方法(实例讲解)
Oct 12 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
微信小程序自定义轮播图
Nov 04 Javascript
详解离线安装npm包的几种方法
Nov 25 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
VUE+Element实现增删改查的示例源码
Nov 23 Vue.js
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
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
python flask 多对多表查询功能
2017/06/25 Python
Python中的TCP socket写法示例
2018/05/11 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Python多进程写入同一文件的方法
2019/01/14 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
Delphi CS笔试题
2014/01/04 面试题
综治维稳工作承诺书
2014/08/30 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
法人代表证明书范本
2015/06/18 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
nginx安装以及配置的详细过程记录
2021/09/15 Servers