更新:我能够让我的滚动条按要求工作,但我觉得我已经解决了实际问题,如果有人有更可靠的答案,我会喜欢它,我已经更新并在新 jQuery 下方的片段中注明了我'米使用。
我正在将 iScroll-4 ( http://cubiq.org/iscroll-4 ) 用于 iPad/Android 网络应用程序,一切都与滑动和滚动完美配合,但我在应用程序的开头有一个目录允许用户跳转到滚动条的特定区域——
我正在使用 iScroll 功能scrollToElement(element, duration)
来跳转到不同的区域。还scrollToPage(page, duration)
用于允许用户一次手动向前和向后导航一页。
currPageX
当我使用函数导航scrollToPage
和滑动时观看控制台会记录变量更新,但在scrollToElement
使用currPageX
变量时不会更新。
因此,如果我跳转到一个元素然后向前导航,scrollToPage('next', 0)
它将向后导航到目录之后的下一页。
我曾尝试在scroll.refresh()
之后scrollToElement
、之前使用该函数,将函数置于超时之内等,但我无法弄清楚为什么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;
});