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

这里为什么要用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]; 

    }

}


正在回答

5 回答

http://img1.sycdn.imooc.com//59f992280001e98706380085.jpg

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

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

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

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


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

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

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

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

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

virusos 提问者

已经是整数那为什么还要用parseInt呢?
2017-04-16 回复 有任何疑惑可以回复我~
#2

慕粉1515593040 回复 virusos 提问者

这个我写错了 返回的是数组元素 用parseInt来转换为整数
2017-04-20 回复 有任何疑惑可以回复我~

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

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

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

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


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

virusos 提问者

就是说currentStyle、ComputedStyle返回的是double类型?还是什么……?
2017-04-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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