Моя проблема в том, что у меня есть 2 <div>
s, содержащий те же элементы. Эти элементы расположены ниже друг друга. При установке элементов «top
» и «left
» на значение, предоставленное .offset()
, после чего значение position
равно absolute
, значения смещений элементов возвращаются как 0. Почему?Получение смещения элемента возвращает одинаковые значения перед установкой позиции: absolute
$(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>
Ооо, теперь я понимаю. Спасибо за разъяснения. Первый элемент позиционируется абсолютно, затем второй вскакивает вверх. – SeinopSys
Да, извините, я написал это в спешке, я исправил объяснение сейчас :) –