13

このコードを使用して、ページ上の特定の要素にスクロールしています。

$("html, body").animate({scrollTop: $(".myDiv").offset().top}, 300);

それは機能しますが、1つの問題があります。スクリプトが上にスクロールしているときにユーザーが下にスクロールすると、異なる方向に同時に2つのスクロールコマンドがあるため、多少の混乱が生じます。

私はそのようなスクロール機能を備えた他のいくつかのサイトをチェックしました。では、これを防ぐための秘訣は何ですか?

4

2 に答える 2

14

これは、アニメーションをスクロールで使用する場合のjQueryのバグであり、適切に検出されます。

私はそれをスクロールをオフにする方法を調査し、この質問を見つけました:スクロールを一時的に無効にする方法は?

これがjsFiddleです。クリックすると表示されます。ユーザーは、アニメーションが完了するまでスクロールできません。

$('.myDiv').click(function(){

    disable_scroll();

    $('html, body').stop().animate({ scrollTop: 0 }, 700,function() {
        enable_scroll();
    });
});

編集:galambalazsところでありがとう。

于 2012-07-25T12:27:10.467 に答える
0

アイデア-スクロールイベントにフックして、http://api.jquery.com/stop/を使用してアニメーションを停止してみてください..悪いアイデア..

解決策と同じ問題-ユーザーのスクロールでscrolltopのjqueryアニメーションを停止させますか?

于 2012-07-25T12:18:26.060 に答える