gpt4 book ai didi

javascript - 获取元素偏移量在设置位置 : absolute 之前返回相同的值

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:54 26 4
gpt4 key购买 nike

我的问题是我有 2 <div> s,包含相同的元素。这些元素彼此下方放置。设置元素后 topleft属性为 .offset() 提供的值, 然后设置 positionabsolute之后,元素的偏移值都返回为 0。为什么?

$(function(){
$('[data-distance]').each(function(i,el){
var $this = $(el),
offset = $this.offset();
$this.css(offset);
$this.css('position','absolute');
});
});
body {
margin: 0;
height: 1000px;
font-family: arial;
}
h1 {
margin: 0 0 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div data-distance="1">
<h1>Text</h1>
<p>Assssssdddddddasdasdasdasdasdasdasdsda</p>
</div>
<div data-distance="0.5">
<h1>Text</h1>
<p>Assssssdddddddasdasdasdasdasdasdasdsda</p>
</div>

最佳答案

它是 0 因为当循环的第一次迭代发生时它会将第一个 $('[data-distance]') 的位置设置为绝对位置,所以当第二次迭代发生,第一个元素位于 top: 0, left: 0 位置。因此,在找到所有匹配元素的偏移量之后,应该添加属性position: absolute

应该是这样的http://jsfiddle.net/vp7jt2xj/

$('[data-distance]').each(function (i, el) {
var $this = $(el),
offset = $this.offset();
$this.css(offset);
});

$('[data-distance]').css('position', 'absolute');

关于javascript - 获取元素偏移量在设置位置 : absolute 之前返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26232245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com