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