jQuery如何在某个位置手动滚动时滚动?

时间:2012-12-23 11:00:40

标签: jquery

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

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

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

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

1 个答案:

答案 0 :(得分: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();
  }
});