基于jQuery的图片左右无缝滚动插件


Posted in Javascript onMay 23, 2012

在线演示:http://demo.3water.com/js/2012/myslideLeftRight/
打包下载:https://3water.com/jiaoben/44973.html
核心代码:

(function($){ 
$.fn.extend({ 
"slidelf":function(value){ 
value = $.extend({ 
"prev":"", 
"next":"", 
"speed":"" 
},value) 
var dom_this = $(this).get(0); //将jquery对象转换成DOM对象;以便其它函数中调用; 
var marginl = parseInt($("ul li:first",this).css("margin-left")); //每个图片margin的数值 
var movew = $("ul li:first",this).outerWidth()+marginl; //需要滑动的数值 
//左边的动画 
function leftani(){ 
$("ul li:first",dom_this).animate({"margin-left":-movew},value.speed,function(){ 
$(this).css("margin-left",marginl).appendTo($("ul",dom_this)); 
}); 
} 
//右边的动画 
function rightani(){ 
$("ul li:last",dom_this).prependTo($("ul",dom_this)); 
$("ul li:first",dom_this).css("margin-left",-movew).animate({"margin-left":marginl},value.speed); 
} 
//点击左边 
$("."+value.prev).click(function(){ 
if(!$("ul li:first",dom_this).is(":animated")){ 
leftani(); 
} 
}); 
//点击左边 
$("."+value.next).click(function(){ 
if(!$("ul li:first",dom_this).is(":animated")){ 
rightani(); 
} 
}) 
} 
}); 
})(jQuery)

思路:

点击左边--

1.将第一个LI向左滑动,滑动的数值就是LI的宽度。(这里是用负margin-left来实现移动。)

2.滑动完成后,将这个LI插入到整个LI的最后一个(实现无缝滚动)

点击右边--

1.将最后一个LI插入到所有LI的第一个,并将其定位到可见区域之外,(这里用的是margin)

2.再将其滑动到可见区域。
注意:这里的IF判断语句,是为了防止连续点击“左”或“右”的铵钮,而出现的BUG;

这判断的意思:只有当LI不处于动画状态时,才执行移动函数。只要处于动画状态,点击时,任何事都不发生。

Javascript 相关文章推荐
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
Feb 25 Javascript
Javascript 命名空间模式
Nov 01 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
Aug 07 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
OpenLayers3实现地图显示功能
Sep 25 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 #Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 #Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 #Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 #Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 #Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
May 23 #Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
May 23 #Javascript
You might like
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
如何在PHP中生成随机数
2020/06/04 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
jquery等待效果示例
2014/05/01 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
新农村建设典型材料
2014/05/31 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
倡议书格式
2014/08/30 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
社区党支部承诺书
2015/04/29 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
JavaScript 定时器详情
2021/11/11 Javascript