问答详情
源自:4-2 获取样式

求大神进来看看

就是为什么这里是parseInt(oDiv.style.width)-1+'px'呢,之前学速度动画里面,都是直接oDiv.offsetLeft-1+'px'。

提问者:z921129H 2016-04-11 10:55

个回答

  • 風雨纏溪
    2016-04-11 15:10:11
    已采纳

    parseInt是获取整数,而后面的oDiv.style.width是获取的在body下面标签里的格式,之前用oDiv.offsetLeft是直接获取style里的值,但是在style里如果给oDiv加上了边框,那么offsetLeft就不能准确获取left的值了,而是获取left+边框的值,这里的oDiv.style.width不会有这个问题,但是还是很麻烦,因此后来又封装了一个函数,也就是getStyle()函数

    function getStyle(obj,attr){

     if(obj.currentStyle){

         return obj.currentStyle[attr];

     }

    else{

        return getComputedStyle(obj,false)[attr];

    }

    }

    然后就可以直接调用parseInt(getStyle(oDiv,"width"))来替换原来的oDiv.offsetWidth