基于jQuery的圖片左右無(wú)縫滾動(dòng)插件
更新時(shí)間:2012年05月23日 16:54:15 作者:
基于jQuery的圖片左右無(wú)縫滾動(dòng)插件,需要的朋友可以參考下
在線演示:http://demo.jb51.net/js/2012/myslideLeftRight/
打包下載:http://www.dbjr.com.cn/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來(lái)實(shí)現(xiàn)移動(dòng)。)
2.滑動(dòng)完成后,將這個(gè)LI插入到整個(gè)LI的最后一個(gè)(實(shí)現(xiàn)無(wú)縫滾動(dòng))
點(diǎn)擊右邊--
1.將最后一個(gè)LI插入到所有LI的第一個(gè),并將其定位到可見(jiàn)區(qū)域之外,(這里用的是margin)
2.再將其滑動(dòng)到可見(jiàn)區(qū)域。
注意:這里的IF判斷語(yǔ)句,是為了防止連續(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.dbjr.com.cn/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來(lái)實(shí)現(xiàn)移動(dòng)。)
2.滑動(dòng)完成后,將這個(gè)LI插入到整個(gè)LI的最后一個(gè)(實(shí)現(xiàn)無(wú)縫滾動(dòng))
點(diǎn)擊右邊--
1.將最后一個(gè)LI插入到所有LI的第一個(gè),并將其定位到可見(jiàn)區(qū)域之外,(這里用的是margin)
2.再將其滑動(dòng)到可見(jiàn)區(qū)域。
注意:這里的IF判斷語(yǔ)句,是為了防止連續(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)文章
Jquery實(shí)現(xiàn)搜索框提示功能示例代碼
數(shù)據(jù)量很大的情況下使用Ajax去實(shí)現(xiàn)真的不合適,于是想采用Jquery來(lái)實(shí)現(xiàn)方法,具體的示例代碼如下,有需求的朋友可以參考下希望對(duì)大家有所幫助2013-08-08ASP.NET jQuery 實(shí)例8 (動(dòng)態(tài)添加內(nèi)容到DropDownList)
在web應(yīng)用里,我們經(jīng)常需要通過(guò)其他控件的事件觸發(fā)動(dòng)態(tài)構(gòu)造DropDownList數(shù)據(jù)內(nèi)容。在這節(jié)中,我們將會(huì)看到如何實(shí)現(xiàn)通過(guò)選擇第一個(gè)下來(lái)框的內(nèi)容來(lái)動(dòng)態(tài)構(gòu)造第二個(gè)下拉框的內(nèi)容2012-02-02jQuery使用load()方法載入另外一個(gè)網(wǎng)頁(yè)文件內(nèi)的指定標(biāo)簽內(nèi)容到div標(biāo)簽的方法
這篇文章主要介紹了jQuery使用load()方法載入另外一個(gè)網(wǎng)頁(yè)文件內(nèi)的指定標(biāo)簽內(nèi)容到div標(biāo)簽的方法,涉及jQuery中l(wèi)oad方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03jquery實(shí)現(xiàn)table鼠標(biāo)經(jīng)過(guò)變色代碼
table鼠標(biāo)經(jīng)過(guò)變色的效果想必大家都有見(jiàn)到過(guò)吧,其實(shí)實(shí)現(xiàn)很簡(jiǎn)單,在本文有個(gè)不錯(cuò)的示例,感興趣的朋友可以學(xué)習(xí)下2013-09-09基于jquery的手風(fēng)琴圖片展示效果實(shí)現(xiàn)方法
這篇文章主要介紹了基于jquery的手風(fēng)琴圖片展示效果實(shí)現(xiàn)方法,涉及jQuery基于事件實(shí)現(xiàn)改變css樣式的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12超輕量級(jí)的基于jquery的三級(jí)展開(kāi)列表
今天自己寫了個(gè)輕量級(jí)的三級(jí)展開(kāi)菜單,如果需要可以在增加一級(jí)別,一般公司的項(xiàng)目三級(jí)都足夠了。2011-04-04