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

求大神进来看看

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

正在回答

1 回答

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

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

z921129H 提问者

非常感谢!
2016-04-11 回复 有任何疑惑可以回复我~
#2

z921129H 提问者

为什么前者要用parseint呢、
2016-04-13 回复 有任何疑惑可以回复我~
#3

風雨纏溪 回复 z921129H 提问者

可能是对获取的数值进行解析的吧,我也不是非常懂,但是我尝试过删掉就没办法获取数值了
2016-04-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113925    人
  • 解答问题       1443    个

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

进入课程

求大神进来看看

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