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全部源代码
May 04 Javascript
JavaScript 关键字屏蔽实现函数
Aug 02 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
关于js中for in的缺陷浅析
Dec 02 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
JavaScript仿微信打飞机游戏
Jul 05 Javascript
js禁止浏览器页面后退功能的实例(推荐)
Sep 01 Javascript
工作中常用js功能汇总
Nov 07 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的declare控制符和ticks教程(附示例)
2014/03/21 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
pygame学习笔记(4):声音控制
2015/04/15 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
简单谈谈python基本数据类型
2018/09/26 Python
python多进程读图提取特征存npy
2019/05/21 Python
python实现简单五子棋游戏
2019/06/18 Python
python画图常规设置方式
2020/03/05 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
初三新学期计划书
2014/05/03 职场文书
班级文化标语
2014/06/23 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
回复函格式及范文
2015/07/14 职场文书
优秀志愿者感言
2015/08/01 职场文书
小学入学感言
2015/08/01 职场文书
大学生创业计划书
2019/06/24 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技