更新:我能够让我的滚动器按预期工作,但我觉得我已经黑了实际的问题,如果有人有一个更可靠的答案,我会喜欢它,我已经更新并注意到在下面的新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;
});发布于 2014-06-05 17:02:20
https://stackoverflow.com/questions/8140797
复制相似问题