私はjQueryが初めてで、スクロールで何かをしようとしています。私の調査を通じて、これに使用するツールとして scrollTop() と offset() に出会いました。ボタンを押すと、div の offset().top の値が警告されるテストを実行していました。少しスクロールしてボタンを押すと、その値が変わります。スクロールしてもdivからドキュメントの上部までの距離は変わらないため、この値は同じままである必要があるという印象を受けました。誰かがなぜこれが起こっているのか説明できますか?
質問する
5207 次
2 に答える
2
測定している要素がスクロール可能なコンテナー内にある場合、top
コンテナーのスクロールが考慮されるため、はい、変更できます。top
ドキュメントの上部から要素までの視覚的な距離になります。要素にスクロールされるコンテナーがあり、そのスクロールを変更すると、その距離が変わります。
検討:
<div style="height: 300px; overflow: scroll">
<p>x</p>
<!-- lots and lots more of those -->
<p id="target">click me</p>
</div>
含まれている をスクロールするdiv
と、ドキュメントの上部から上部までの視覚的な距離が#target
変化します。
于 2013-07-22T21:40:19.487 に答える
1
Element.offset().top;
要素がドキュメントの上部からのピクセル数であるため、これを行う場合
alert( $('#element').offset().top );
$('#element').css('margin-top', '50px');
alert( $('#element').offset().top );
値の変化が見られるはずです
はスクロールscrollTop();
可能な要素用であるため、スクローラーがどれだけ下にあるかを検出します。これは、html
またはbody
要素がない場合にのみ機能しますoverflow:scroll
それで
alert( $('#element').scrollTop() );
// Scroll the Element within 5 seconds
window.setTimeout(function(){
alert( $('#element').scrollTop() );
}, 5000);
長い話を短くすると、あなたは言うことができます
offset
要素が移動scrollTop
すると変更され、要素がスクロールされると変更されます
于 2013-07-22T21:38:10.600 に答える