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 相关文章推荐
Draggable Elements 元素拖拽功能实现代码
Mar 30 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
javascript为下拉列表动态添加数据项
May 23 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
vue component组件使用方法详解
Jul 14 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
vue2.0获取鼠标位置的方法
Sep 13 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
vue路由跳转传递参数的方式总结
May 10 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 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
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php生成gif动画的方法
2015/11/05 PHP
JavaScript 代码压缩工具小结
2012/02/27 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
详解如何较好的使用js
2016/12/16 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python3之微信文章爬虫实例讲解
2017/07/12 Python
Python实现进程同步和通信的方法
2018/01/02 Python
python数据挖掘需要学的内容
2019/06/23 Python
python多线程分块读取文件
2019/08/29 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
会计专业毕业自荐书范文
2014/02/08 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
服装采购员岗位职责
2014/03/15 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
保护校园环境倡议书
2015/04/28 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
选购到合适的激光打印机
2022/04/21 数码科技