1

次の機能を実現するにはどうすればよいですか? スクロールバーが特定のポイントに達したら、特定のピクセル数だけ上にスクロールする必要がありますか?

おそらくスクロールイベントをドキュメントにバインドするために、JS/jQueryではあまりうまくいきませんが、これを達成する方法が本当にわかりません。

これは私が持っているものですが、動作しません:

  $(document).bind('scroll',function(e){

            if (
                    $(this).offset().top  > 3000) 
            {
                $.scrollTo('-800px', 800, { axis:'y' });
            }

    });
4

1 に答える 1

1

と比較document.body.scrollTopしてみてくださいdocument.body.clientHeight。目的のポイントに達したら、scrollBy()メソッドを使用していくつかのピクセルを上げます。

更新後の編集:(scrollToページの絶対位置までスクロールする)とscrollBy(現在のスクロール位置から上下にスクロールする)を混同しています。また、これらは jQuery メソッドではないため、$.

offset()EDIT 2:スクロール位置には使用できません。ページ上の要素の位置のみを取得します。

これが実際の例です:

$(document).bind('scroll', function(){
    if (document.body.scrollTop > 3000) {
        scrollBy(0, -800);
    }
});
于 2013-07-26T17:21:47.763 に答える