为了账号安全,请及时绑定邮箱和手机立即绑定

offsetLeft是如何获取margin-left

offsetLeft是如何获取margin-left的?为什么把left改成margin-left会每次都叠加margin-left的呢?

正在回答

1 回答

offseLeft获取的是【当前对象】跟【具有定位属性的上级父元素】最左边的距离,不会获取margin-left:

    例如:<div style='position:relative'>

                        <span style='position:absolute; top:20px; left:20px;'>我是当前对象</span>

                <div>

        在上面,span的父元素使用了相对定位,因此,span对象的offsetLeft属性获取的值,就是span到div最左边的距离。

    另外,offsetLeft属性获取的值是只可读数值(如20,只是个数值,可以用来计算的),而obj.style.left获取的值是字符串(如20px),并且是可以读写的,这是二者之间的差别。所以在js动画里,要用offsetLeft获取的值来进行数学计算设置动画,而不是用obj.style.left获取的字符串。


对于你说的【left改成margin-left会每次都叠加margin-left】,这里的left就是obj.style.left,它在css里面对应的,是定位的左边距离,是从对象的盒子最外边开始计算的。而margin-left是盒子模型中的外边距部分,你把左边距改成外边距,当然是外边距增加啦


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

offsetLeft是如何获取margin-left

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信