求前辈解决js透明度“事件回调”bug?

<!doctype html>







Demo

<br> *{margin:0;padding:0;}<br> html,body{width:100%;height:100%;}<br> #div1{width:100px;height:100px;background-color:#660099;position:absolute;left:0px;top:0px;}<br> #div2{width:100px;height:100px;background-color:#ff99ff;position:absolute;left:120px;top:0px;}<br>





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


问题通过自己调试解决了,谢谢