开启一个定时器:
var timer=setInterval(function(){
},1000);
关闭定时器:
clearInterval(timer);
定义一个变量,用来保存定时器的标识
var timer;
关闭之前开启的定时器,防止多次点击,持续开启定时器
clearInterval(timer);
获取样式:getComputedStyle()火狐中可以运行
首先是有两个参数,元素和伪类。
第二个参数不是必须的,当不查询伪类元素的时候可以忽略或者传入 null。
var oldValue=getComputedStyle(document.getElementById("box1"),null).left;
oldValue=parseInt(oldValue);
传建一个可以执行简单动画的函数:
/*
* 参数
* obj:对象
* attr:对象的样式(width、height、top)
* target:停止的目标位置
* speed:速度
*/
function move(obj,target,speed){
clearInterval(obj.timer);
//获取元素目前的位置
var current=parseInt( getComputedStyle(document.getElementById("box1"),null).left);
if(current > target){
speed=-speed;
};
//开启一个定时器,执行动画效果
//向执行动画的属性中添加一个timer属性,用来保存它自己的定时器标识
obj.timer=setInterval(function(){
var oldValue=getComputedStyle(document.getElementById("box1"),null).left;
oldValue=parseInt(oldValue);
//火狐中可以运行
//在旧值的基础上增加
var newValue=oldValue+speed;
//将新值设置给box1
if(speed<0 && newValue<target||speed>0 && newValue>target){
newValue=target;
}
obj.style.left=newValue+"px";
//关闭定时器
if(newValue==target){
clearInterval(obj.timer);
};
},30);
};