1

この jsfiddle - http://jsfiddle.net/qD7Yh/ -でスクロールアップしたときに、scrollTop() がビューポートの上の #box の量を返さない理由は誰にも分かりますか? ボックスをクリックすると、現在の scrollTop が返されます。

jQuery は次のとおりです。

$(document).ready(function(){
    $('#box').click(function() {
    alert("scrollTop() for box is " + $('#box').scrollTop());
    });
});

ありがとう

4

1 に答える 1

2

この関数scrollTop()は、呼び出している要素の上部からの距離を返すため、現在の構文では、関数はボックスでスクロールされた量を返します。これは、スクロールバーまたはスクロール可能なコンテンツがないため、0 です。コードが機能するようにするには、にオーバーフローするコンテンツが必要です。これにより、スクロールして値<div>を増やすことができますscrollTop()

これを試して:

CSS:

#box{
    width:200px;
    height:100px;
    line-height:200px;
    overflow: scroll;
    background-color: beige;
    border:1px solid brown;
}

html:

<div id="box"><p>Hello there</p><p>This is a test</p></div>

JavaScript:

$(document).ready(function(){
    $('#box').click(function() {
        alert("scrollTop() for box is " + $('#box').scrollTop());
    });
});

ドキュメント/ウィンドウを見つける scrollTop()

ドキュメントがどれだけスクロールされたかを調べたい場合 (ボックスがウィンドウの高さよりも大きいため)、$(window).scrollTop()またはを使用します。$(document).scrollTop()

于 2013-05-23T03:31:26.330 に答える