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

obj is defind 老是报错!?

<!DOCTYPE html>
<html>
<head>
    <title>多物体运动</title>
    <meta charset="utf-8"/>
    <style type="text/css">
      ul,li{list-style: none;}
      ul li{width: 200px;height: 100px;background-color: yellow;margin-bottom: 20px;border: 4px solid #000;filter:alpha(opaciy:30);opacity: 0.3     }
    </style>
    <script type="text/javascript">
    window.onload = function  () {        
        var li1=document.getElementById("li1");
        
        li1.onmouseover=function(){
            startMove(this,'opacity',100);
        }
        li1.onmouseout=function(){
            startMove(this,'opacity',30);
        }        
    }    
    function getStyle(obj,attr){
        if(obj.currentStyle){
            return obj.currentStyle[attr];
        }
        else{
            return getComputedStyle(obj,false)[attr];
        }

    }
    // var timer = null;
    var alpha = 30;

    function startMove(obj,attr,iTarget){
        clearInterval(obj.timer);
        obj.timer=setInterval(function(){
            var icur=0;
            if (attr=="opacity") {
                icur=parseFloat(getStyle(obj.attr))*100;

            } else{
                icur = parseInt(getStyle(obj,attr));

            }
            
            var speed = (iTarget-icur)/8;
            speed = speed>0?Math.ceil(speed):Math.floor(speed);// 缓冲运动
            if(icur==iTarget) {
                clearInterval(obj.timer);

            }
            else{
                if (attr=="opacity") {
                    obj.style.filter="alpha(opacity:"+(icur+speed)+")";// 针对IE浏览器
                    obj.style.opacity=(icur+speed)/100;//针对火狐等其他主流浏览器
                } else{
                    obj.style[attr]=icur+speed+"px";// 不加中括号不能运行
                }                
            }

        },30);
    }        
    </script>
</head>
<body>
  <ul>
    <li id="li1"></li>    
  </ul>
</body>
</html>

正在回答

2 回答

你把getStyle函数移动到startMove函数后面就能成功运行了

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

我自己发现了,     icur=parseFloat(getStyle(obj.attr))*100;   obj.attr  应该改成obj,attr   但为什么 会报 obj is defind 呢?

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

举报

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

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

进入课程

obj is defind 老是报错!?

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