猿问

js动画透明度效果,有点问题求教

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>透明動畫</title>

<style type="text/css">

body,div{

    margin:0;

    padding:0;

}

#div1{

    width:200px;

    height:200px;

    background:red;

    filter:alpha(opacity:30);

    opacity:0.3;

}

</style>

</head>

 

<body>

<div id="div1"></div>

<script type="text/javascript">

window.onload = function(){

    var oDiv = document.getElementById('div1');

    oDiv.onmouseover = function(){

      startMove(100);

    }

    oDiv.onmouseout = function(){

      startMove(30);

    }

}

var timer=null;

var alpha = 30;

function startMove(iTarget){

    var oDiv = document.getElementById('div1');

    clearInterval(timer);//先關定時器

    timer=setInterval(function(){

      var speed = 0;

        if(alpha>iTarget){

            speed=-10;

          }else{

            speed =10;

          }

        if(alpha == iTarget){

            clearInterval(timer);

          }else{

            alpha+=speed;

            oDiv.style.filter='alpha(opacity:'+alpha+')'; //for IE

            oDiv.style.opacity=alpha/100;

            //for Chrome及Firefox    

          }

    },30)

}

</script>

</body>

</html>

鼠标离开事件。。iTarget=30,定义的alpha=30.。那么 if(alpha == iTarget)成立,不就关了定时器??如何运作的?


、_0007
浏览 1762回答 2
2回答

快乐的小牛妞

鼠标移入的时候,alpha随着程序变化30.40.50.60...100,当alpha =100时,与目标值一样,停止;  鼠标移出的时候,alpha从100开始递渐,而不是自定义的30开始,所以递减后100,90,80....30,alpha =30时,与目标值一样,停止,关闭定时器,所以透时度也就不会再变化了。

赵小布

关掉定时器,div块的颜色的透明度就到30%就不会再变化了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答