基于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 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
Aug 02 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
JavaScript制作简易的微信打飞机
Mar 31 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
使用angularjs创建简单表格
Jan 21 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
vue2滚动条加载更多数据实现代码
Jan 10 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
重置Redux的状态数据的方法实现
Nov 18 Javascript
浅谈JS的二进制家族
May 09 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计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
Yii清理缓存的方法
2016/01/06 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
javascript控制台详解
2015/06/25 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
python实现进程间通信简单实例
2014/07/23 Python
Python 数据结构之旋转链表
2017/02/25 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python的slice notation的特殊用法详解
2019/12/27 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
python模块内置属性概念及实例
2021/02/18 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
Servlet方面面试题
2016/09/28 面试题
优秀老师事迹材料
2014/02/05 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL