基于jQuery的圖片左右無縫滾動(dòng)插件
更新時(shí)間:2012年05月23日 16:54:15 作者:
基于jQuery的圖片左右無縫滾動(dòng)插件,需要的朋友可以參考下
在線演示:http://demo.jb51.net/js/2012/myslideLeftRight/
打包下載:http://www.dhdzp.com/jiaoben/44973.html
核心代碼:
(function($){
$.fn.extend({
"slidelf":function(value){
value = $.extend({
"prev":"",
"next":"",
"speed":""
},value)
var dom_this = $(this).get(0); //將jquery對(duì)象轉(zhuǎn)換成DOM對(duì)象;以便其它函數(shù)中調(diào)用;
var marginl = parseInt($("ul li:first",this).css("margin-left")); //每個(gè)圖片margin的數(shù)值
var movew = $("ul li:first",this).outerWidth()+marginl; //需要滑動(dòng)的數(shù)值
//左邊的動(dòng)畫
function leftani(){
$("ul li:first",dom_this).animate({"margin-left":-movew},value.speed,function(){
$(this).css("margin-left",marginl).appendTo($("ul",dom_this));
});
}
//右邊的動(dòng)畫
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);
}
//點(diǎn)擊左邊
$("."+value.prev).click(function(){
if(!$("ul li:first",dom_this).is(":animated")){
leftani();
}
});
//點(diǎn)擊左邊
$("."+value.next).click(function(){
if(!$("ul li:first",dom_this).is(":animated")){
rightani();
}
})
}
});
})(jQuery)
思路:
點(diǎn)擊左邊--
1.將第一個(gè)LI向左滑動(dòng),滑動(dòng)的數(shù)值就是LI的寬度。(這里是用負(fù)margin-left來實(shí)現(xiàn)移動(dòng)。)
2.滑動(dòng)完成后,將這個(gè)LI插入到整個(gè)LI的最后一個(gè)(實(shí)現(xiàn)無縫滾動(dòng))
點(diǎn)擊右邊--
1.將最后一個(gè)LI插入到所有LI的第一個(gè),并將其定位到可見區(qū)域之外,(這里用的是margin)
2.再將其滑動(dòng)到可見區(qū)域。
注意:這里的IF判斷語句,是為了防止連續(xù)點(diǎn)擊“左”或“右”的銨鈕,而出現(xiàn)的BUG;
這判斷的意思:只有當(dāng)LI不處于動(dòng)畫狀態(tài)時(shí),才執(zhí)行移動(dòng)函數(shù)。只要處于動(dòng)畫狀態(tài),點(diǎn)擊時(shí),任何事都不發(fā)生。
打包下載:http://www.dhdzp.com/jiaoben/44973.html
核心代碼:
復(fù)制代碼 代碼如下:
(function($){
$.fn.extend({
"slidelf":function(value){
value = $.extend({
"prev":"",
"next":"",
"speed":""
},value)
var dom_this = $(this).get(0); //將jquery對(duì)象轉(zhuǎn)換成DOM對(duì)象;以便其它函數(shù)中調(diào)用;
var marginl = parseInt($("ul li:first",this).css("margin-left")); //每個(gè)圖片margin的數(shù)值
var movew = $("ul li:first",this).outerWidth()+marginl; //需要滑動(dòng)的數(shù)值
//左邊的動(dòng)畫
function leftani(){
$("ul li:first",dom_this).animate({"margin-left":-movew},value.speed,function(){
$(this).css("margin-left",marginl).appendTo($("ul",dom_this));
});
}
//右邊的動(dòng)畫
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);
}
//點(diǎn)擊左邊
$("."+value.prev).click(function(){
if(!$("ul li:first",dom_this).is(":animated")){
leftani();
}
});
//點(diǎn)擊左邊
$("."+value.next).click(function(){
if(!$("ul li:first",dom_this).is(":animated")){
rightani();
}
})
}
});
})(jQuery)
思路:
點(diǎn)擊左邊--
1.將第一個(gè)LI向左滑動(dòng),滑動(dòng)的數(shù)值就是LI的寬度。(這里是用負(fù)margin-left來實(shí)現(xiàn)移動(dòng)。)
2.滑動(dòng)完成后,將這個(gè)LI插入到整個(gè)LI的最后一個(gè)(實(shí)現(xiàn)無縫滾動(dòng))
點(diǎn)擊右邊--
1.將最后一個(gè)LI插入到所有LI的第一個(gè),并將其定位到可見區(qū)域之外,(這里用的是margin)
2.再將其滑動(dòng)到可見區(qū)域。
注意:這里的IF判斷語句,是為了防止連續(xù)點(diǎn)擊“左”或“右”的銨鈕,而出現(xiàn)的BUG;
這判斷的意思:只有當(dāng)LI不處于動(dòng)畫狀態(tài)時(shí),才執(zhí)行移動(dòng)函數(shù)。只要處于動(dòng)畫狀態(tài),點(diǎn)擊時(shí),任何事都不發(fā)生。
您可能感興趣的文章:
- 多種JQuery循環(huán)滾動(dòng)文字圖片效果代碼
- jQuery循環(huán)滾動(dòng)展示代碼 可應(yīng)用到文字和圖片上
- JQuery循環(huán)滾動(dòng)圖片代碼
- 利用jQuery簡(jiǎn)單實(shí)現(xiàn)產(chǎn)品展示圖片左右滾動(dòng)功能(示例代碼)
- 基于jquery實(shí)現(xiàn)點(diǎn)擊左右按鈕圖片橫向滾動(dòng)
- jquery 單行滾動(dòng)、批量多行滾動(dòng)、文字圖片翻屏滾動(dòng)效果代碼
- 基于jQuery圖片平滑連續(xù)滾動(dòng)插件
- js jquery做的圖片連續(xù)滾動(dòng)代碼
- jquery實(shí)現(xiàn)圖片左右間隔滾動(dòng)特效(可自動(dòng)播放)
- jQuery實(shí)現(xiàn)一組圖片循環(huán)滾動(dòng)
相關(guān)文章
struts2+jquery組合驗(yàn)證注冊(cè)用戶是否存在
這篇文章主要介紹了使用struts2+jquery如何驗(yàn)證注冊(cè)用戶是否存在,需要的朋友可以參考下2014-04-04
jQuery在vs2008及js文件中的無智能提示的解決方法
我通過下面方法實(shí)現(xiàn)了jQuery在VS2008及js文件中的智能提示的,希望對(duì)朋友們有所幫助。2010-12-12
選擇TreeView控件的樹狀數(shù)據(jù)節(jié)點(diǎn)的JS方法(jquery)
前些日子為了提高人性化選擇樹狀權(quán)限的功能,根據(jù)樹的結(jié)構(gòu)用jquery寫了個(gè)方法。2010-02-02
jquery load()在firefox(火狐)下顯示不正常的解決方法
覺得應(yīng)該是由于 直接將www.baidu.com的內(nèi)容放到div中,對(duì)于較嚴(yán)格的FireFox可能不會(huì)處理用cssviewter查看處理后的頁面源碼果然發(fā)現(xiàn)div中為空2011-04-04
jQuery源碼分析之jQuery中的循環(huán)技巧詳解
這篇文章主要介紹了jQuery源碼中的循環(huán)技巧,包括各類選擇、判斷、遍歷等等操作,非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09

