jquery实现滑动图片自己测试的例子


Posted in Javascript onNovember 05, 2013

最近正在回顾之前的一些基础知识,用jquery写了一个图片滑动的插件,虽然还是有些问题存在,用法很简单,只要在对目标元素绑定slideW()函数即可,该函数最多支持两个输入,分别是图片变化之后的宽度,以及动画的速度,如果不输入,则采用默认的宽度以及默认的速度。

下面是我自己测试的例子:

//html代码 
<div class = "content"> 
<ul class = "list"> 
<li class = "liimg"><span class = "imgli img1"></span></li> 
<li class = "liimg"><span class = "imgli img2"></span></li> 
<li class = "liimg"><span class = "imgli img3"></span></li> 
<li class = "liimg"><span class = "imgli img4"></span></li> 
</ul> 
</div>

css代码
//css代码 
*{margin:0px;padding:0px;list-style-type:none;} 
body{text-align:center;} 
.content{width:590px;margin:0 auto;text-align:left;} 
.list{width:565px;margin:0px 9px;border:1px solid #eee;padding:5px;display:inline-block;overflow:hidden;} 
.liimg{padding:4px;border:1px solid #aaa;border-radius:2px;display:inline-block;*display:inline;*margin:0px 3px;background:#FFF;width:auto;} 
.imgli{margin:2px 0px;width:125px;height:300px;display:inline-block;} 
.img1{background:url(images/img1.jpg) no-repeat 50% 50%;} 
.img2{background:url(images/img2.jpg) no-repeat 50% 50%;} 
.img3{background:url(images/img3.jpg) no-repeat 50% 50%;} 
.img4{background:url(images/img4.jpg) no-repeat 50% 50%;}

js代码
//js代码 
//jquery实现图片滑动效果 
var zyljq = $.noConflict(); 
zyljq.fn.extend({ 
slideW:function(wid,speed){ 
//wid要设置的宽度,可以设置变得最小时的宽度或者变得最大时的宽度 
//如果不设置,则会根据绑定元素的宽度,计算设置默认宽度。 
//speed要设置的动画运行速度,可以是normal,slow,fast,也可以是毫秒数。 
//如果不设置,则默认速度是normal 
that = this; //绑定该事件的所有元素 
var eleNum = zyljq(this).size(); //获取图片的数量 
var curwidth = zyljq(this).width();//获取图片的原始宽度 
if(!wid){ 
wid = Math.round(curwidth*4/5); 
//如果没有设置动画的终止条件,则计算出默认的情况 
} 
if(zyljq.trim(speed) == ""){ 
//如果没有设置速度,则取默认速度 
speed = "normal"; 
} 
if(!isNaN(speed)){ 
//如果设置了负值,则变化 
speed = speed < 0?-speed:speed; 
} 
//计算照片的最大和最小宽度 
if(wid > curwidth){ 
widMin = Math.floor((eleNum*curwidth - wid)/(eleNum-1))+"px"; 
widMax = ((curwidth*eleNum) - widMin*(eleNum-1))+"px"; 
}else{ 
widMax = Math.floor((eleNum*curwidth - wid*(eleNum-1)))+"px"; 
widMin = wid+"px"; 
} 
//console.log("widMax="+widMax+";widMin="+widMin); 
//绑定hover事件 
zyljq(this).hover(function(){ 
zyljq(that).stop(); 
zyljq(this).animate({width:widMax},speed); 
zyljq(that).not(this).animate({width:widMin},speed); 
},function(){ 
zyljq(that).stop(); 
zyljq(that).animate({width:curwidth},speed); 
}); 
} 
});

下面是视图:
原始效果:
jquery实现滑动图片自己测试的例子 
鼠标悬停在第二个元素上之后的效果:
jquery实现滑动图片自己测试的例子 
在这个过程中,也回顾了一些常见的问题,比如:ie低版本下,margin:0 auto;不居中的问题,display:inline-block;不支持的问题。也许还有很多的问题没有注意到,如果您发现了什么问题,欢迎您的指导。大家可以共同进步。
Javascript 相关文章推荐
Javascript学习笔记一 之 数据类型
Dec 15 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
PHP 数组current和next用法分享
Mar 05 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
Vue实现表格批量审核功能实例代码
May 28 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
javascript实现文字跑马灯效果
Jun 18 Javascript
用js实现in_array的方法
Nov 05 #Javascript
jquery遍历数组与筛选数组的方法
Nov 05 #Javascript
javascript alert乱码的解决方法
Nov 05 #Javascript
jquery三个关闭弹出层的小示例
Nov 05 #Javascript
jquery ajax post提交数据乱码
Nov 05 #Javascript
jquery ajax属性async(同步异步)示例
Nov 05 #Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 #Javascript
You might like
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
Python中的getopt函数使用详解
2015/07/28 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Python安装selenium包详细过程
2019/07/23 Python
Python的in,is和id函数代码实例
2020/04/18 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
python 实现逻辑回归
2020/12/30 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
50道外企软件测试面试题
2014/08/18 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
教师队伍管理制度
2014/01/14 职场文书
承诺书格式
2014/06/03 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
铁人观后感
2015/06/16 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python