Javascript 如何设置动态定位的div的正确位置()
我正在进行api调用,并在Javascript 如何设置动态定位的div的正确位置(),javascript,jquery,html,Javascript,Jquery,Html,我正在进行api调用,并在div中显示信息。当我运行$(window.scrollTop($('#div').position().top)时,它返回top:267px的位置。在浏览器中查看同一div时,其位置实际上是top:2058px 因此,当我运行代码时 window.addEventListener('message',function(event) { if(window.location.href.indexOf('?queryParam=') > -1) {
div
中显示信息。当我运行$(window.scrollTop($('#div').position().top)
时,它返回top:267px的位置。在浏览器中查看同一div时,其位置实际上是top:2058px
因此,当我运行代码时
window.addEventListener('message',function(event) {
if(window.location.href.indexOf('?queryParam=') > -1) {
$('.button').click(function(){
$(window).scrollTop($('#div').position().top);
});
}
return;
},false);
它滚动到top:267px
而不是top:2058px
,此时div实际上在浏览器中可见
我的理论是,因为div
不是静态的,而是通过api调用动态地拉取的,所以在事件侦听器中,它只说明在检索div时,div在瞬间的位置,但尚未在浏览器中正确放置 用于获取div
的滚动位置。
但这将为您提供div
相对于其父元素的位置。
虽然在其他情况下非常方便,但在您的情况下,它不会给出所需的值
在本例中,您需要div
相对于窗口的位置,因为您正在滚动的是窗口。
对于您需要使用的内容,这将为您提供元素相对于文档的位置,无论元素在页面上的结构如何:
$(window).scrollTop($('#div').offset().top);
您可能会考虑张贴您正在使用的代码来获取元素位置。给出元素相对于其父元素的滚动位置。要获取相对于窗口/文档的滚动位置,请使用:@myfunkyside。非常感谢。我想现在应该有人正式回答了。我把它作为一个答案贴了出来,再加上一点解释(我讨厌没有答案的问题)。