jQuery Offset返回负值

时间:2014-12-24 06:08:40

标签: jquery offset

我的情况如下

在我的ui中,我将有一个文本框。如果我在文本框中输入了一个数字,我需要向下滚动到相应的页码。

Dom中,我会有一些具有相应ID的div。如果用户输入的页码为5.我将检查dom中的第5个div偏移并获得最高值。通过使用scrollTop它将滚动到第5个div。

此处,问题是在向下滚动到第5个div之后。如果再次,则输入页码为2.偏移顶部值为负。因此,ScrollTop默认移至顶部。

Here is fiddle

要准确再现,请转到第7页,然后再转到第3或第4页。

2 个答案:

答案 0 :(得分:10)

迟到的答案,以防有人帮助:

只需使用dom offsetTop属性即可。尽管之前发生了任何滚动,这将是一个正确的位置。

$( something )[0].offsetTop; 

答案 1 :(得分:4)

http://jsfiddle.net/Ldfmvwr9/3/

试试吧

topValue=$('#container').scrollTop() + $("#"+parseInt(userPageNum)).offset().top - $("#"+parseInt(userPageNum)).height() / 2;