基于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 相关文章推荐
JS 文字符串转换unicode编码函数
May 30 Javascript
jquery常用技巧及常用方法列表集合
Apr 06 Javascript
js限制textarea每行输入字符串长度的代码
Oct 31 Javascript
提取字符串中年月日的函数代码
Nov 05 Javascript
解析JavaScript中delete操作符不能删除的对象
Dec 03 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
Nov 17 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
Dec 30 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 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 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Python 解析xml文件的示例
2020/09/29 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
幼儿园庆六一游园活动方案
2014/01/29 职场文书
投标保密承诺书
2014/05/19 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
2014年环保工作总结
2014/11/26 职场文书
特岗教师个人总结
2015/02/10 职场文书
地道战观后感2000字
2015/06/04 职场文书
公司档案管理制度
2015/08/05 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技