obj.alpha 是怎么样才能大于iTarget啊

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    body,div{
      margin: 0px;
      padding: 0px;
    }
    div{
      width:200px;
      height: 200px;
      background: red;
      margin:10px;
      float: left;
      opacity: 0.3;
    }
  </style>
  <script type="text/javascript">
    window.onload=function(){
      var oDiv= document.getElementsByTagName('div');
      for (var i=0;i<oDiv.length;i++){
        oDiv[i].alpha=30;//若多个物体要进行自己的运动,不造成其他物体的影响,需对每个物体定义一个alpha.也可设置oDiv[i].timer = null;
        oDiv[i].onmouseover=function(){
          startMove(this,100);//this为当前的物体
        }
        oDiv[i].onmouseout=function(){
          startMove(this,30);
        }
      }
    }
    //obj被套用为this,从而可以在每个alpha或timer上,进行套用.
    function startMove(obj,iTarget){
      clearInterval(obj.timer);//先要将原本的动画效果取消.
      obj.timer = setInterval(function(){
        var speed = 0;
        if(obj.alpha>iTarget){
          speed = -10;
        }
        else{
          speed = 10;
        }
        if(obj.alpha == iTarget){
          clearInterval(obj.timer);
        }
        else{
          obj.alpha+=speed; 
          obj.style.opacity = obj.alpha/100;
        }
      },30)
    }
  </script>
</head>
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>

obj.alpha不是==iTarget时就清除动画了吗?

Yeah___
浏览 941回答 1
1回答

qq_杀意隆_0

鼠标移入div时,speed为10,obj.alpha初始值为30,iTarget初始值为100, 然后每过30毫秒obj.alpha的值加10。 这样一直加下去直到obj.alpha==100时(obj.alpha == iTarget)停止。 然后鼠标开始移出div时,此时obj.alpha的值为100(上一过程加到了100的),而iTarget的初始值被设为30, 就是这时候obj.alpha的值大于iTarget啊。然后obj.alpha的值每过30毫秒减10直到等于30时停止。
打开App,查看更多内容
随时随地看视频慕课网APP