1

有谁知道为什么 scrollTop() 在这个 jsfiddle - http://jsfiddle.net/qD7Yh/中向上滚动时不返回视口上方的#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 回答