基于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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
JavaScript脚本语言在网页中的简单应用
May 13 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
JavaScript中this详解
Sep 01 Javascript
JS onkeypress兼容性写法详解
Apr 27 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
bootstrap table 多选框分页保留示例代码
Mar 08 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
Dec 26 Javascript
微信小程序拼接图片链接无底洞深入探究
Sep 03 Javascript
Vue可自定义tab组件用法实例
Oct 24 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 获取远程网页内容的函数
2009/09/08 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
vue实现微信分享功能
2018/11/28 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
python实现ip代理池功能示例
2019/07/05 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
存储过程的优点有哪些
2012/09/27 面试题
优秀研究生主要事迹
2014/06/03 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
募捐感谢信
2015/01/22 职场文书
大学生毕业个人总结
2015/02/15 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis