我對JQuery沒有太多的經驗,除了標準的api功能,但我的頁面上有一些滾動條,它們都使用相同的代碼,只有它們每個都有一些自己的設置(例如,單獨的高度和滾動限制以及當前滾動的次數)。我希望能夠一遍又一遍地使用代碼,但每個引用都接收它自己的一組變量。我認爲原型就是我所追求的,但我無法將我的頭圍繞在我所看到的這些例子上。這是我的卷軸代碼:一個常用函數的jquery原型
$(document).ready(function() {
var scrollAmt = 50; //distance in pixels;
var scrollableAmt = $('#weblinks .container').outerHeight();
var viewAmt = $('#weblinks').outerHeight();
var maxScroll = Math.ceil((scrollableAmt-viewAmt)/scrollAmt);
var currentItem = 0;
function setScrollButtons(scrollRef,scrollAmount){
}
$("#weblinks .scrollDownBtn").click(function(){
if (currentItem <= maxScroll){
$('#weblinks .container:not(:animated)').animate({'top' : '-='+ scrollAmt + ''},500,function(){
currentItem++
});
} else {
currentItem = 0;
$('#weblinks .container:not(:animated)').animate({'top' : currentItem},500);
}
});
$("#weblinks .scrollUpBtn").click(function(){
if (currentItem > 0){
$('#weblinks .container:not(:animated)').animate({'top' : '+='+ scrollAmt + ''},500,function(){
currentItem--;
});
} else {
$('#weblinks .container:not(:animated)').animate({'top' : currentItem},500);
}
});
});
所以基本上什麼我想要做的就是創建一個函數或類,我想,這一切完成上面的代碼,但能一個div引用傳遞它取代#weblinks,並可能傳遞一個滾動量,並且這個功能的多個實例可以在同一個頁面上一起存在。任何人有任何關於這方面最好的方法的建議?
編輯:我已經添加了將始終存在的每個滾動的HTML。
<div id="weblinks" class="scrollbar_container">
<div class="customScrollBox">
<div class="container">
<div class="content">
</div>
</div>
<a class="scrollUpBtn" href="javascript:void(0);"></a> <a class="scrollDownBtn" href="javascript:void(0);"></a>
</div>
</div>
你可以展示HTML的演示,常量是什麼? (例如,它會總是有一個'.container','.scrollDownBtn'&'.scrollUpBtn'? –
確定 - 我已經添加了 - 常量將是所有的HTML,以及用於計算scrollableAmt,viewAmt和maxScroll。 – mheavers
@mheavers:你希望在滾動條之間有什麼不同的可調值? (例如,你通常會傳遞給這個「Addon」參數,它應該是_scrollbar A_和* scrollbar B_唯一的嗎?) –