3

ユーザーがスクロール可能なコンテナーで上にスクロールしたのか、下にスクロールしたのかを確認するにはどうすればよいですか?

jQueryは何らかのメカニズムを提供しますか?

css:

#container {
    display: block;
    width: 250px;
    height: 25px;
    background: green;
}
#scrolling {
    width: 250px;
    height: 300px;
    backround: red;
    overflow: auto;
}

http://jsfiddle.net/Hmaf2/2/

どうもありがとう!

パット

4

3 に答える 3

3
$('#somediv').scrollTop()

上からの位置を教えてくれます

-編集-

$('#somediv').scroll(function(){
    if($('#somediv').scrollTop()==0){
        console.log('top')
    }
})
于 2012-08-23T14:55:00.483 に答える
2

はい、スクロール可能なコンテナの現在のスクロールトップ値にアクセスできます。

ここで動作しているのはjsFiddleです。

$('#scrolling').scroll(function() {
   var scrollTop = $(this).scrollTop();
   console.log(scrollTop);
});​
于 2012-08-23T14:57:03.427 に答える
1

divの高さ、スクロール可能な高さ、スクロールオフセットを比較することで、スクロール位置をテストできます。

$(document).ready(function(){
    $('#scrolling').scroll(function(){
        var scrollTop = $(this).scrollTop();
        var iheight = $(this).innerHeight();
        var sheight = this.scrollHeight;
        var text = '';
        if (scrollTop <= 5) {
            text = 'top';
        }
        else if (scrollTop+5 >= sheight-iheight) {
            text = 'bottom';
        }
        else {
            text = scrollTop+' middle ('+iheight+','+sheight+')';
        }
        $('#result').text(text);
    });
});

fiddle
この例では、divのマージンの上下から5ピクセルを予約しています。

于 2012-08-23T16:01:23.673 に答える