更新: 我能夠讓我的滾動工作正常,但我覺得我已經繞過實際問題,並會喜歡它,如果任何人有一個更穩定的答案,我已經更新並在我正在使用的新jQuery下面的代碼片段中註明。iscroll scrollToElement沒有更新currPage變量
我爲iPad/Android網絡應用程序使用iScroll-4(http://cubiq.org/iscroll-4),一切工作都完美地與滑動和滾動,但我有一個目錄在應用程序的開始,允許用戶跳轉到滾動條的特定區域 -
我使用iScroll函數scrollToElement(element, duration)
以跳轉到不同的區域。同時使用scrollToPage(page, duration)
允許用戶每次手動向前和向後導航一頁。
一邊看控制檯日誌的currPageX
變量更新,當我與scrollToPage
功能,當我輕掃瀏覽,但使用scrollToElement
的currPageX
變量時不更新。
因此,如果我跳轉到某個元素,然後使用scrollToPage('next', 0)
向前導航,它將向後移動並導航到內容列表後面的下一頁。
我試過在scrollToElement
之後使用scroll.refresh()
函數,把函數放入超時等等,我不知道爲什麼currPageX
沒有更新。
下面是我使用的是兩種不同的功能jQuery的代碼片段:
// TO NAVIGATE FORWARD AND BACKWARDS
$('span.control').on('click', function() {
var slideDir = $(this).attr('data-dir');
if (slideDir == 'prev') {
var tehPg = tehScroll.currPageX-1;
} else if (slideDir == 'next') {
var tehPg = tehScroll.currPageX+1;
}
tehScroll.scrollToPage(tehPg, 0);
return false;
});
// TO JUMP FROM CONTENTS
$('li[data-page="toc"] span').on('click', function() {
var toPage = $(this).attr('data-page');
tehScroll.scrollToElement('li[data-page="'+toPage+'"]', 800);
// ADDED THE FOLLOWING LINE TO MANUALLY SET currPageX after scrolling!
tehScroll.currPageX = $('#slides li[data-page="'+toPage+'"]').index();
return false;
});
我使用iScroll第5版和有同樣的問題。我解決它的方式是通過編寫 **'tehScroll.currentPage.pageY' ** 而不是 **'tehScroll.currPageX' ** 此外,該**的返回false **的目的是什麼底端? –
'return false'會停止被點擊元素的默認動作,所以對於一個'a'標籤可以導航到'href',然而,在這種情況下,因爲點擊處理器是在'span'上的,確實沒有什麼;) – andyface