iscroll scrollToElement不更新currPage变量

时间:2011-11-15 17:49:29

标签: javascript jquery iscroll4

更新: 我能够让我的卷轴按照需要工作,但我觉得我已经破解了实际问题,如果有人有更坚实的答案我会喜欢它,我已经更新并注意到我正在使用的新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;
  });

1 个答案:

答案 0 :(得分:0)

您是否考虑使用jquery-mobile-iscrollview小部件插件? - 有一个函数scrollToPage(pageX,pageY,time),对我来说效果很好......

最好的

中号