0

在两个 y 位置之间手动滚动时如何自动.scrollTo()(使用插件)?(if()里面声明.scroll()

我在下面的代码看起来很简单。但是,滚动有点颠簸,当它自动滚动到内容时,滚动就卡在那里了。好像它想做两件事。

scrollToContent = function() {
    $(document).stop(1, 1).scrollTo($('.content'), 750, { easing: 'easeInOutQuint' });
}

$(window).scroll(function() {
    if ($(this).scrollTop() <= $(this).height()) {
        scrollToContent();
    }
});
4

1 回答 1

2

这对于评论来说太长了,所以我将其作为答案。$(window).scroll()是您要用来检查用户是否正在滚动的方法。如果这与scrollTo()插件混淆,请尝试设置标志。例如:

var scrolling = false;

scrollToContent = function() {
  scrolling = true;

  // disable user scroll here

  $(document).stop(1, 1).scrollTo($('.content'), 750, { easing: 'easeInOutQuint', onAfter: function() {
    scrolling = false;

    // reenable user scroll here
  }});
}

$(window).scroll(function() {
  if ($(this).scrollTop() <= $(this).height() && !scrolling) {
    scrollToContent();
  }
});
于 2012-12-23T17:43:06.770 回答