调用两次时 jQuery 偏移量(坐标)的行为不一致
Not coherent behaviour of jQuery offset(coords) when called twice
我正在尝试使用jQuery offset()函数定位一个绝对定位的div。这个想法是将其放置在DOM的另一个元素的固定偏移处。这发生在具有多个嵌套div 的相当复杂的环境中。
发生的奇怪事情是,调用两次会给出两种不同的结果。对我来说,这似乎没有理由,尽管我对jQuery很陌生,所以我可以监督一些明显的事情。
我确实认为
var pos = $(document.getElementById(someElementInTheDOM)).offset();
$(document.getElementById(MyDiv)).offset( pos );
应该将 MyDiv 始终放在同一个位置,即使我调用此代码大约 10 次。这就是在这个小提琴中正确发生的事情。点击放大镜几次,一切都很好。
但是一旦我开始添加display:none
和display:block
属性,事情就会被打乱。我试图把它归结为基本,我在这里创建了一个小提琴。要了解我的意思,请按放大镜,再次单击放大镜,再次单击放大镜,用白色"X"关闭div,再次单击放大镜。
知道发生了什么吗?
你只需要改变顺序:
document.getElementById("iuocboun_filter_window").style.display="block";
$(document.getElementById("iuocboun_filter_window")).offset( pos );
而不是
$(document.getElementById("iuocboun_filter_window")).offset( pos );
document.getElementById("iuocboun_filter_window").style.display="block";
编辑:
说明:offset
不适用于隐藏元素,这就是为什么您必须首先使其可见,然后设置偏移量。 ;)
相关文章:
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Android和JavaScript解析API之间不一致
- Javascript的行为与PHP包含文件不一致
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 点击链接行为不一致
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- 与显示不一致
- 控件坐标与组坐标不匹配
- Ext 4.2.1 模型日期解析在浏览器之间不一致
- 通过 Dropbox API 上传时的文件内容不一致
- JavaScript - 对象属性不一致
- Javascript 混淆了 null、instanceof 和 typeof 的语法不一致
- localeCompare 显示使用前导变音字符对单词进行排序时不一致的行为
- SVG 对象部分上的 JQuery click() 不一致
- 使用forEach和.shift()时结果不一致
- Window.open浏览器的高度不一致
- 不同浏览器中的LinkButton PageMethod行为不一致
- 当活动处于后台时,Android WebView不一致
- 调用两次时 jQuery 偏移量(坐标)的行为不一致
- 画布上下文坐标不一致