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 相关文章推荐
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
javascript动态添加删除tabs标签的方法
Jul 06 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
vue实现全选、反选功能
Nov 17 Javascript
js的函数的按值传递参数(实例讲解)
Nov 16 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
vue+webpack实现异步加载三种用法示例详解
Apr 24 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 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的安全策略
2006/10/09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
信仰观后感
2015/06/03 职场文书
校园运动会广播稿
2015/08/19 职场文书
数学复习课教学反思
2016/02/18 职场文书
python - timeit 时间模块
2021/04/06 Python
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS