Javascript 如何使绝对定位的元素直接位于内联元素的位置之上?

Javascript 如何使绝对定位的元素直接位于内联元素的位置之上?,javascript,jquery,Javascript,Jquery,这是一个后续问题,如果你想了解背景 我有一个内联div(具有固定的宽度和高度)和另一个div(“排行榜加载器”),位于页面下方,包含该div的实际内容 由于各种原因(参见前一个线程),我无法简单地执行appendChild或类似操作 相反,我希望定位排行榜加载器,以便它占据排行榜插槽“保留”的空间。我使用了一些jQuery方法来实现这一点: var loader = $('leaderboard-loader'); var dest = $('leaderboard-slot'); var po

这是一个后续问题,如果你想了解背景

我有一个内联div
(具有固定的宽度和高度)和另一个div(“排行榜加载器”),位于页面下方,包含该div的实际内容

由于各种原因(参见前一个线程),我无法简单地执行appendChild或类似操作

相反,我希望定位排行榜加载器,以便它占据排行榜插槽“保留”的空间。我使用了一些jQuery方法来实现这一点:

var loader = $('leaderboard-loader');
var dest = $('leaderboard-slot');
var pos = dest.getPosition();
loader.setStyle('top', pos.y + 'px');
loader.setStyle('left', pos.x + 'px');
我在加载文档并调整大小时触发。但是,如果页面中的其他元素导致回流,则目标div会移动,但加载程序不会移动

有没有一种安全的方法可以做到这一点——当我对页面一无所知时,它需要工作(即我不能只调用任何其他可能导致回流的方法,因为我不知道这些方法是什么)


非常感谢您的帮助-谢谢:)

如果我正确理解了您的问题,就不需要Javascript了。只需将
排行榜加载器
放在
排行榜插槽
标签前面,给它
位置:绝对
和相同的宽度和高度。若槽是一个正常的元素,装载机将浮在上面,完全覆盖它

<div id="leaderboard-loader"></div><div id="leaderboard-slot"></div>

如果我正确理解了您的问题,就不需要使用Javascript。只需将
排行榜加载器
放在
排行榜插槽
标签前面,给它
位置:绝对
和相同的宽度和高度。若槽是一个正常的元素,装载机将浮在上面,完全覆盖它

<div id="leaderboard-loader"></div><div id="leaderboard-slot"></div>

我现在开始后悔了。希望您能找到比绝对定位更好的解决方法。但是,本着kludgey解决方案的精神,您可以在计时器上调用重新定位脚本。唉。

我现在开始后悔了。希望您能找到比绝对定位更好的解决方法。但是,本着kludgey解决方案的精神,您可以在计时器上调用重新定位脚本。叹气。

您可以将它们放在相同的相对位置,0边距div,临时div z索引在慢速加载器的顶部

使它们以0:0和相同大小绝对定位在父对象中,而不是窗口中


您可以在淡入淡出另一个元素时使用不透明度和淡入淡出,或者只交换可见性:准备就绪时隐藏和可见这两个元素。

您可以将它们放在相同的相对位置,0边距div,临时div z索引在慢速加载程序的顶部

使它们以0:0和相同大小绝对定位在父对象中,而不是窗口中


您可以在淡入淡出另一个元素时使用“不透明度”和“淡入淡出”,也可以在准备就绪时交换两个元素的可见性:“隐藏”和“可见”。

谢谢Pekka。不幸的是,排行榜加载器必须出现在文档的底部(它加载在一堆使用document.write的外部脚本中)——其想法是允许在Leadboard-loader之前首先加载整个页面。谢谢Pekka。不幸的是,排行榜加载器必须出现在文档的底部(它加载在一堆使用document.write的外部脚本中)-想法是允许在排行榜加载器之前首先加载整个页面。请参阅我对Pekka的评论-不幸的是,它们不能在同一个分区中-需要页面能够在没有“加载器”的情况下加载先去潜水。不过,感谢您的建议:)请参阅我对Pekka的评论-不幸的是,它们不能在同一个分区中-需要页面能够在没有“loader”分区的情况下首先加载。不过谢谢你的建议:)