setInterval(微妙)

opacity(alpha)を、ロールオーバー/アウトで0.20-1.00の範囲で変更

フラグを立てて処理が終わっていなければ、次の処理を受け付けないようにした。

問題点

フラグの立て方が下手。

マウスオーバーが終わりきるまでマウスアウト(オーバーもだけど)を受け付けないようにした
さらに、処理が終わった後のopacityをチェックをして、0.2になった時にマウスアウトしていたら1.0に戻すようしないとおかしい。


window.onload=function(){
_bt2=document.getElementById("bt2");
_ta2=document.getElementById("ta2");

nowA2=100;
_ta2.value=nowA2;
dec=0.2;//減速
maxA=100;//最大アルファ
minA=20;//最小アルファ
flag2=true;
reftime=20;//リフレッシュタイム:ミリ秒

//現在のalphaを、targetAlphaに近づける関数2
function alphaSet2(targetA2){
flag2=false;
nowA2+=(targetA2-nowA2)*dec;
if(Math.abs(nowA2-targetA2)<1){
nowA2=targetA2;
flag2=true;
clearInterval(aID2);
}
var alpha = parseInt(nowA2);
_bt2.style.opacity = alpha/100;
_ta2.value=alpha/100;
}

//マウスオーバー2
_bt2.onmouseover=function(){
if(flag2){
aID2=window.setInterval(function(){
alphaSet2(minA);
},reftime);
}
}

//マウスアウト2
_bt2.onmouseout=function(){
if(flag2){
aID2=window.setInterval(function(){
alphaSet2(maxA);
},reftime);
}
}
}