获取元素偏移量在设置位置之前返回相同的值:绝对值
Getting element offset returns same values before setting position: absolute
我的问题是我有两个<div>
s,包含相同的元素。这些元素被放置在彼此下方。当将元素的top
和left
属性设置为.offset()
提供的值,然后将position
设置为absolute
时,元素的偏移值均返回为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');
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- AJAX:$_GET不返回任何值
- 从Javascript方法返回全局变量
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 获取元素偏移量在设置位置之前返回相同的值:绝对值