0

.scrollTo()2つのy位置の間を手動でスクロールするときに、(プラグインを使用して)自動的に行うにはどうすればよいですか?(if()内部のステートメント.scroll()

私が以下に持っているコードは、かなり簡単に思えます。ただし、スクロールは少しでこぼこしていて、コンテンツに自動的にスクロールすると、スクロールはそこで止まります。まるで2つのことをしたいようです。

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 に答える