我的情况如下:
在我的ui中,我将有一个文本框。如果我在文本框中输入了一个数字,我需要向下滚动到相应的页码。
在Dom
中,我会有一些具有相应ID的div。如果用户输入的页码为5.我将检查dom中的第5个div偏移并获得最高值。通过使用scrollTop它将滚动到第5个div。
此处,问题是在向下滚动到第5个div之后。如果再次,则输入页码为2.偏移顶部值为负。因此,ScrollTop默认移至顶部。
要准确再现,请转到第7页,然后再转到第3或第4页。
答案 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;