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

来源:4-2 获取样式

virusos

2017-04-16 13:02

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回答

  • 慕粉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的像素值,也就是整数类型

    慕粉1515... 回复viruso...

    这个我写错了 返回的是数组元素 用parseInt来转换为整数

    2017-04-20 10:21:55

    共 2 条回复 >

  • 慕粉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.


    viruso...

    就是说currentStyle、ComputedStyle返回的是double类型?还是什么……?

    2017-04-16 14:05:40

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113924 学习 · 1443 问题

查看课程

相似问题