<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>透明度</title>
<style>
*{
margin:0;padding:0;
}
#div{
width:300px;height:200px;background:red;filter:alpha(opacity:30);opacity:0.3;
}
</style>
</head>
<script>
window.onload=function(){
var onDiv=document.getElementById('div');
onDiv.onmouseover=function(){
startmove(100);
}
onDiv.onmouseout=function(){
startmove(30);
}
}
var timer=null;
alpha=30;
function startmove(iTarget){
var onDiv=document.getElementById('div');
clearInterval(timer)
timer=setInterval(function(){
var speed=0;
if(alpha>iTarget){
speed=-10;
}else{
speed=10;
}
if(alpha==iTarget){
clearInterval(timer);
}else{
alpha+=speed;
onDiv.style.filter='alpha(opacity:'+alpha+')';
onDiv.style.opacity=alpha/100;
}
},30)
}
</script>
<body>
<p id="div"></p>
</body>
</html>老师在讲alpha>iTarget我其实是有点懵的,因为我看了下已经定义了alpha=30,并且iTarget在30-100之间徘徊的,那我应该怎么去理解这句话?
你这样想:iTarget是个定值(30,100);
alpha是一个随时间变化而变化的值,即所对应的颜色深浅。
当alpha>iTarget时,是不是iTarget只能取30,这个不等式才能有效。即他的目标值是30,是不是颜色要变浅啊,颜色变浅是不是要给alpha值递减啊,递减的话,只能加一个负数吧。
你画一个数轴,标出alpha与iTarget就比较明显
这是鼠标移入,目标值从100转向30所以要负数