http://jsfiddle.net/juveo1d7/
有没有可靠的方法可以通过设置固定div的底部属性或顶部属性来确定其位置?
我最好的选择是getComputedStyle,我想我可以通过查看div的顶部属性来知道它是否被"剪裁"到底部(如果没有设置,那么div就会被剪裁到底部),但即使我没有设置顶部属性,它仍然返回一个以像素为单位的值。
一个简单的div
<div id="fixed"></div>
css
#fixed {
width: 50px;
height: 50px;
position: fixed;
bottom: 30px;
right: 30px;
background: red;
}
和javascript
var fixed = document.getElementById('fixed');
var position = window.getComputedStyle(fixed).position;
var top = window.getComputedStyle(fixed).top;
var bottom = window.getComputedStyle(fixed).bottom;
我知道这是一个很小的区别,但我需要在另一个div上只使用javascript来重现相同的行为。
好的,我得到了解决方案。
top属性仅在Firefox中返回一个以像素为单位的值,因为getComputedStyle对某些属性的操作有点不同,并返回使用的值而不是解析的值。要获得firefox中top属性的解析值,我们需要使用getDefaultComputedStyle,它只存在于firefox中(自ff19以来)。
var top = window.getComputedStyle(fixed).top; // returns value in px
var top = window.getDefaultComputedStyle(fixed).top; // returns auto