4

scrollTopが150などの特定の値に達した後、スクロールを防ぐにはどうすればよいですか。

$(window).scroll(function() {   
    if($(window).scrollTop() >=50)) {
       return false;    // basically don't scroll       
    }
});
4

3 に答える 3

5

関数を使用して.scrollTopscrollHeight を設定しscrollToます。x から y にスクロールするのではなく、y に移動するだけです。

したがって、イベントが y に設定された後に呼び出されるため、基本的にスクロールを停止することはできません。scrollHeight高さを比較した後、おそらくハンドラー内で目的の値を設定できます。

if($(window).scrollTop() >=50) 
{ 
    $(window).scrollTop(0); 
}

注:要素での使用は許容範囲ですが、ウィンドウ オブジェクトでの使用はユーザーにとって煩わしいでしょう。上記は、それがどのように機能するかを示すためのものです。

>> http://jsfiddle.net/KwgMj << をスクロールしてみて、どれだけ煩わしいか見てみましょう。

于 2012-05-07T15:19:17.563 に答える
3
$(window).scroll(function(e) {   
    if($(window).scrollTop() >=50)) {
      $(window).scrollTop(50)
    }
});
于 2012-05-07T15:06:37.100 に答える
1

明らかな質問は別として。なぜこれが欲しいのですか?

別のアプローチをお勧めします。

ウィンドウ全体を埋めるラッパーを用意し、特定の高さを持ちoverflow-x: hidden、css で使用します。

ただし、これはあなたが求めているものかもしれませんし、そうでないかもしれません。

次のステップのためにスクロールし続けることができる継続的なサイトを作成したい場合は、単に.slideDown()関連するコンテンツを作成することをお勧めします.

スクロールは非常に基本的な機能であり、正当な理由なく変更するべきではありません。

編集:
iPad 固有のソリューションの場合は、ラッパーを使用します。

<? if (strpos($_SERVER['HTTP_USER_AGENT'],'iPad')): ?>
<!-- If iPad, add style -->
<style type="text/css">
    div#wrapper {
        height: 100%;
        overflow: hidden;
    }
</style>
<? endif; ?>

<body>
<div id="wrapper">
<!-- Content here -->
</div>
</body>
于 2012-05-07T15:11:19.807 に答える