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

这里为什么要用parseInt?currentStyle和getComputedStyle返回什么?

window.onload = functon(){

    startMove();

}


function startMove(){

    setInterval(function(){

    var oDiv = document.getElementById('div1');

    oDiv.style.width = parseInt(getStyle(oDiv,'width')) - 1 + 'px';


},30);

}


function getStyle(obj,attr){

    if(obj.currentStyle){

        return obj.currentStyle[attr];

    }else{ 

        return obj.getComputedStyle(obj,false)[attr]; 

    }

}


提问者:virusos 2017-04-16 13:02

个回答

  • 慕粉2115078494
    2017-11-01 17:22:12

    http://img.mukewang.com/59f992280001e98706380085.jpg

    为了去掉单位,方便计算。

  • 慕丝0963956
    2017-09-04 14:05:32

    这里用parseInt是为了去掉px,方便计算用的。比如用getStyle函数获取到元素宽为100px。那么parseInt(100px)=100,从而方便计算,你不可能用100px-1吧。

    currentStyle和getComputedStyle返回的就是目标元素的属性值,attr这个形参就是属性的意思


  • 前端小蜗牛_
    2017-05-20 12:43:47

    。。明明是去掉px的好吗。。。返回像素的是什么鬼?

  • 慕粉1515593040
    2017-04-16 14:42:30

    返回的是当前obj的像素值,也就是整数类型

  • 慕粉1515593040
    2017-04-16 13:52:39

    parseInt是为了获取整数   一般网页的高和宽都是整数  没有小数的 

    currentStyle  和ComputedStyle 是用来判断你用的是哪个浏览器

    IE的话就是用currentStyle返回obj所对应的sttr的值,根据你的代码 ,也就是返回在IE浏览器上oDiv的width的值

    如果是firefox浏览器则用ComputedStyle来返回值,与IE同理, return getComputedStyle(obj,false)[attr]前没有obj.