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];
}
}
为了去掉单位,方便计算。
这里用parseInt是为了去掉px,方便计算用的。比如用getStyle函数获取到元素宽为100px。那么parseInt(100px)=100,从而方便计算,你不可能用100px-1吧。
currentStyle和getComputedStyle返回的就是目标元素的属性值,attr这个形参就是属性的意思
。。明明是去掉px的好吗。。。返回像素的是什么鬼?
返回的是当前obj的像素值,也就是整数类型
parseInt是为了获取整数 一般网页的高和宽都是整数 没有小数的
currentStyle 和ComputedStyle 是用来判断你用的是哪个浏览器
IE的话就是用currentStyle返回obj所对应的sttr的值,根据你的代码 ,也就是返回在IE浏览器上oDiv的width的值
如果是firefox浏览器则用ComputedStyle来返回值,与IE同理, return getComputedStyle(obj,false)[attr]前没有obj.
JS动画效果
113924 学习 · 1443 问题
相似问题