为什么不能创建函数?

来源:4-1 JS多物体动画

Wo_o明

2016-02-20 15:19

<script type="text/javascript" language="javascript">
 window.onload =function(){
  var aDiv = document.getElementsByTagName("div");
  for (var i=0;i<aDiv.length;i++)
  aDiv[i].alpha = 30;
  aDiv[i].onmouseover = function(){
   changes(this,100);
  }
  aDiv[i].onmouseout = function(){
   changes(this,30);
  }
 }
 function changes(obj,num){
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){
   var speed = 0;
   obj.alpha>num?speed=-10:speed=10;
   if(obj.alpha == num)
   {
    clearInterval(obj.timer);
   }
   else
   {
    obj.style.filter = "alpha(opacity:"+obj.alpha+speed+")";
    obj.style.opactiy = (obj.alpha + speed)/100;
   }
  },30)
 }
</script>


浏览器提示:Uncaught TypeError: Cannot set property 'onmouseover' of undefined

包括onmouseout也一样,不能创建。这是为什么?

写回答 关注

4回答

  • witchy
    2016-02-20 20:26:39
    已采纳

    你for循环少写了花括号吧 没有括起来

    witchy 回复Wo_o明

    还有else 里面 应该这样写 obj.alpha+=speed; obj.style.filter='alpha(opacity:'+obj.alpha+')'; obj.style.opacity = obj.alpha/100; 否则 你的 obj.alpha 永远是 30 +10 =40 的 透明度 。

    2016-02-21 03:49:42

    共 3 条回复 >

  • witchy
    2016-02-21 03:44:11

    obj.style.opactiy = (obj.alpha + speed)/100; 

    obj.style.opacity = (obj.alpha + speed)/100;
    你的 opacity 拼错了 仔细看看 

  • Wo_o明
    2016-02-20 23:14:19

    为什么我加了括号还是没出来效果呢?浏览器也没有提示什么错误。

  • Betsey
    2016-02-20 20:38:09

    楼上的说的对

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题