<!doctype html>
<script>
window.onload=function(){
addPic();
}
function addPic(){
var div1=document.getElementById("div1");
var div2=document.getElementById("div2");
move(div1,"opacity",10,5,function(){
move(div1,"opacity",100,5,function(){
move(div1,"opacity",20,5)/*第三次没有生效,不知道为什么*/
//alert(1)
})
});
//move(div1,"opacity",20,5)
}
function move(obj,attr,iTarget,num,fn){
var timer=null;
var t=0;
var iSpeed=0;
clearInterval(obj.timer);
obj.timer=setInterval(function(){
t=parseInt(getStyle(obj,attr)*100);//要加parseInt
if(t<iTarget){
iSpeed=Math.ceil((iTarget-t)/num);
}else{
iSpeed=Math.floor((iTarget-t)/num);
}
if(t==iTarget){
clearInterval(obj.timer);
if(fn){
fn();
}
}else{
obj.style[attr]=(t+iSpeed)/100;
}
},50);
}
function getStyle(obj,attr){
return parseFloat(getComputedStyle(obj,null)[attr]);//要用parseFloat
}
</script>
问题通过自己调试解决了,谢谢