基于jQuery的图片左右无缝滚动插件
更新时间:2012年05月23日 16:54:15 作者:
基于jQuery的图片左右无缝滚动插件,需要的朋友可以参考下
在线演示:http://demo.jb51.net/js/2012/myslideLeftRight/
打包下载:https://www.jb51.net/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不处于动画状态时,才执行移动函数。只要处于动画状态,点击时,任何事都不发生。
打包下载:https://www.jb51.net/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不处于动画状态时,才执行移动函数。只要处于动画状态,点击时,任何事都不发生。
相关文章
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
在web应用里,我们经常需要通过其他控件的事件触发动态构造DropDownList数据内容。在这节中,我们将会看到如何实现通过选择第一个下来框的内容来动态构造第二个下拉框的内容2012-02-02jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
这篇文章主要介绍了jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法,涉及jQuery中load方法的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-03-03
最新评论