基于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 20 Javascript
jquery获得下拉框值的代码
Aug 13 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
React组件生命周期详解
Jul 03 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 Javascript
浅谈Fetch 数据交互方式
Dec 20 Javascript
vue 对axios get pust put delete封装的实例代码
Jan 05 Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
原生JS实现多条件筛选
Aug 19 Javascript
原生js实现自定义消息提示框
Nov 19 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中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
python Django模板的使用方法
2016/01/14 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
django如何实现视图重定向
2019/07/24 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
介绍一下#error预处理
2015/09/25 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
人事专员岗位职责范本
2014/03/04 职场文书
国际贸易实训报告
2014/11/05 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL