问答详情
源自:4-2 细节优化及扩展(二)

this.getElementsByTagName("div")[0].style.top获取不到值,那老师也是这样写的,居然会有效果,太诡异 了吧

我在想如何在js中获取某个元素样式表中的top值

提问者:慕粉3568301 2016-12-25 14:35

个回答

  • 六月ovo
    2017-04-04 09:39:59

    上面没说完,视频里面直接用 obj。style.attribute 的方式获取css的top值是不对的,在前面的js动画里面有设置过一个函数叫getStyle(),可以仿照这个函数来获取top值,或者直接使用obj.offseTop

    function getStyle(obj,attr){
        if(obj.currentStyle){
            return obj.currentStyle[attr]; //IE使用currentStyle方法来获取属性值
         } else{
             return getComputedStyle(obj,false)[attr];    //Firefox使用getComputedStyle方法获取属性值
             }


  • 六月ovo
    2017-04-04 09:29:23

    当css属性值写在内联或者外联样式表中的时候,使用obj.style.attribute的方式是获取不到属性值的,但是可以设置属性值,只有在html元素属性中写入的内嵌样式才可以直接被obj.style.attribute的方式获取

    //这个是内联
    <style>            
    div {
        /*    属性    */
        }
    </style>
    
    //这个是外联
    <link href="#" rel="stylesheet" type="text/css"> 
    
    //这个是内嵌
    <div width="100px" height="100px"></div>


  • 慕粉3568301
    2016-12-26 15:13:47

    那老师这样写,运行之后居然会有效果

  • 慕粉3568301
    2016-12-26 15:12:44

    是的,

  • 水墨流沙
    2016-12-26 15:04:24

    你这个this必须是前面有li标签的集合吧,然后再取它里面的第一个div