基本上我試圖修復Jquery Tools 1.2.6 Scrollable的滾動過去最後一個項目的奇怪習慣,如果項目的數量沒有被滾動大小平分。Jquery Tools Scrollable:讓它停在最後一個項目
換句話說,如果我有一個包含11個項目的小部件,並且它被設置爲每次顯示2並且每次單擊下一個按鈕以滾動到接下來的2個項目時,當涉及到第11個項目時將滾動以便第十一個顯示,但在第十二個項目所在的位置有一個空的空間。本質上滾動未來2到視圖儘管沒有第二個項目的
這裏我有一個演示我修復的jsfiddle:http://jsfiddle.net/natepers/6kmuE/21/
我設法得到它停止在最後一個項目通過重置scroll-size
到剩餘的物品數量少於scroll-size
;
問題是我無法回到第一個項目。
這裏的JavaScript:
var scrollable = $(".scrollable").data("scrollable");
var size = scrollable.getConf().size;
// Catch any requests for items at the end of the list
scrollable.onSeek(function(event, index) {
var self_size = this.getSize();
// Last vsisible item
var last = index + size;
// How many to the last item
var difference = self_size - last;
// How many more than the scroll size
var remainder = index%size;
//reset scroll size for each request
scrollable.getConf().size = size;
// If next request has items but less than the scroll size
if (remainder == 0 && difference < size && difference > 0) {
// Set the scroll size to th enumber of items left
scrollable.getConf().size = difference;
}
//If we're at the end
if (index++ === self_size - size) {
// Set disabled style on next button
$("a.next").addClass("disabled");
}
//If the items are not evenly divided by the scroll size we know we're at the end
if (remainder != 0) {
// Set scroll size to the what's left
scrollable.getConf().size = remainder;
}
});
// Stop scrolling at last item
scrollable.onBeforeSeek(function(event, index) {
var self_index = this.getIndex();
var self_size = this.getSize();
var last = self_index + size;
//If the last visible item is the last item
if (last == self_size) {
// If the next requested item is >= the last item do nothing
if (index > self_index) { return false; }
}
});
感謝您的任何建議或幫助。
這一個作品只是對我很好。非常感謝! –
像老闆一樣!謝謝。 我不得不在垂直滾動條上使用它,我所要做的就是將width()調用改爲height(); –