基于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显示、隐藏元素以及添加删除样式
Aug 09 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
Jquery简单实现GridView行高亮的方法
Jun 15 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
layui选项卡效果实现代码
May 19 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
js中Object.defineProperty()方法的不详解
Jul 09 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
详解django模板与vue.js冲突问题
Jul 07 Javascript
vue使用i18n实现国际化的方法详解
Sep 05 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
判断多个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/08/04 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
python中类的一些方法分析
2014/09/25 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
django数据库自动重连的方法实例
2019/07/21 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
深入了解python列表(LIST)
2020/06/08 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
学术会议欢迎词
2014/01/09 职场文书
八项规定整改措施
2014/02/12 职场文书
高考励志标语
2014/06/05 职场文书
医院搬迁方案
2014/06/14 职场文书
食品安全责任书范本
2015/05/09 职场文书
工作态度怎么写
2015/06/25 职场文书