jQuery Offset返回负值
我有这样的场景如下 :
在我的UI中,我将有一个文本框。 如果我在文本框中输入了一个数字,我需要向下滚动到相应的页码。
在Dom
,我会有一些div与各自的id。 如果用户输入的页码为5.我将检查dom中的第5个div偏移并获得最高值。 通过使用scrollTop它将滚动到第5个div。
在这里,问题是在向下滚动到第5个div之后。 如果再次输入页码为2.偏移顶部值为负。 因此,ScrollTop默认移至顶部。
这是小提琴
要准确再现,请转到第7页,然后再转到第3或第4页。
http://jsfiddle.net/Ldfmvwr9/3/
试试吧
topValue=$('#container').scrollTop() + $("#"+parseInt(userPageNum)).offset().top - $("#"+parseInt(userPageNum)).height() / 2;
迟到的答案,万一它会帮助某人:
只需使用dom offsetTop属性。 尽管之前发生了任何滚动,这将是一个正确的位置。
$( something )[0].offsetTop;