基于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 相关文章推荐
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
在Ubuntu上安装最新版本的Node.js
Jul 14 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
jQuery中DOM操作实例分析
Jan 23 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
vue 指定组件缓存实例详解
Apr 01 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
Vue的props父传子的示例代码
May 20 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 字符串函数收集
2010/03/29 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
详解vue中使用微信jssdk
2019/04/19 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
python批量提取word内信息
2015/08/09 Python
Python 处理数据的实例详解
2017/08/10 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
使用python实现链表操作
2018/01/26 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
生物技术专业毕业生求职信范文
2013/12/14 职场文书
打架检讨书800字
2014/01/10 职场文书
爱情寄语大全
2014/04/09 职场文书
大学生社会实践方案
2014/05/11 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
建筑横幅标语
2014/10/09 职场文书
创建文明城市倡议书
2015/04/28 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
红高粱观后感
2015/06/10 职场文书
少年雷锋观后感
2015/06/10 职场文书