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

为什么我的链式运动不起作用呢

<script>
            window.onload = function(){
                var oMove = document.getElementById('myDiv');
                var oList = oMove.getElementsByTagName('a');
                for(var i=0; i<oList.length; i++){
                    oList[i].onmouseover = function(){
                        var _this = this.getElementsByTagName('i')[0];
                        startMode(_this,{top:-3,opacity:0},function(){
                            _this.style.opacity = 100;
                            startMode(_this,{top:3,opacity:100})
                        });
                        }
                    }
                }
                
        </script>


//框架

function startMode(obj,json,fn){
    clearInterval(obj.timer);
    
    obj.timer = setInterval(function(){
        var flag = true;
        for(var attr in json){
            var icur = 0;
            if(attr=='opacity'){
                icur = parseFloat(getStyle(obj,attr))*100;
            }else{
                icur = parseInt(getStyle(obj,attr));
            }
            
             var speed = (json[attr]-icur)/8;
             speed>0?Math.ceil(speed):Math.floor(speed);
            
            if(json[attr] != icur){
                flag = false;
            }
                if(attr == 'opacity'){
                    obj.style.opacity = (icur+speed)/100;
                    obj.style.filter = 'alpha(opacity'+(icur+speed)+')';
                }else{
                    obj.style[attr] = icur + speed+'px';
                }
            }
        
            if(flag){
                        clearInterval(obj.timer);
                        if(fn){
                            fn();
                        }
            }
        
    },30)
}


function getStyle(obj,attr){
    if(obj.currentStyle){
        return obj.currentStyle[attr];
    }else{
        return getComputedStyle(obj,false)[attr];
    }
}

正在回答

1 回答

speed>0?Math.ceil(speed):Math.floor(speed);不对

speed=speed>0?Math.ceil(speed):Math.floor(speed);

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

举报

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

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

进入课程

为什么我的链式运动不起作用呢

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