美文网首页
2018-09-07 原生js获取left和top

2018-09-07 原生js获取left和top

作者: 小猪夫人hj | 来源:发表于2019-01-01 15:35 被阅读0次

    [原生js获取left值和top值]
    ---------------------------------(https://www.cnblogs.com/yizhilin/p/7269124.html)

    在用js做动态效果时,通常需要获取元素绝对定位中的left和top属性值。比如做一个碰撞广告,就要不停的获取元素的top和left属性值。

    需要注意的事:取值的元素必须要设置position:absolute绝对定位属性,才能取的到left值。

    第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style标签和link 外部引用的left和top属性值。

    第二种方法 ,只读,可以获取所有style样式,存在兼容性问题,在标准浏览器中可以通过window.getComputedStyle(对象,null).left方法来获取元素的left和top的属性值。而在IE浏览器上则是采用obj.currentStyle.left方法来获取属性值。

    第三种方法,使用obj.offsetLeft来获取对象的left属性值,用obj.offsetTop来获取对象的top属性值。

    栗子:
    <script type="text/javascript">
    // 1,第一种方法 obj.style.left 只能获取行内样式的left值
    var boxs = document.getElementById('boxs');
    var ctns = document.getElementById('ctns');
    var a = boxs.style.left;
    console.log(a); //值是空,没有

    var a2 = ctns.style.left;
    console.log(a2);    //值是20px
    
    
    // 2,第二种方法,获取所有类型样式值,要写兼容
    //支持w3c规范的浏览器
    var b2= window.getComputedStyle(boxs).left;
    console.log(b2);    //10px
    //兼容IE9以下写法
    var b3 = window.getComputedStyle? window.getComputedStyle(boxs).left : boxs.currentStyle.left;
    console.log(b3);    //10px
    
    // 3,第三种方法 使用obj.offsetLeft
    var c = boxs.offsetLeft;
    var c2 = ctns.offsetLeft;
    console.log(c);     //值是10
    console.log(c2);    //值是20
    

    </script>

    相关文章

      网友评论

          本文标题:2018-09-07 原生js获取left和top

          本文链接:https://www.haomeiwen.com/subject/imscgftx.html