這段代碼為什么實現不了
window.onload=ChangeColor;
function ChangeColor() {
var box=document.getElementsByTagName("div");
for (var i = 0; i < box.length; i++) {
box[i].timer=null;
box[i].alpha=30;
box[i].onmouseover=function(){
ChageAlpha(this,100);
}
box[i].onmouseout=function(){
ChageAlpha(this,30);
}
}
}
function ChageAlpha(obj,iTarget){
? clearInterval(obj.timer);
? obj.timer=setInterval(function(){
? var speed=0;
? if (obj.alpha>iTarget) {
? speed=5;
? }else{
? speed=-5;
? }
? if (obj.alpha==iTarget) {
? clearInterval(obj.timer);
? }else{
? obj.alpha+=speed;
? obj.style.filter='alpha(opacity:'+obj.alpha+')';
? obj.style.opacity=obj.alpha/100;
? }
? },30)
}
2016-04-17
if?(obj.alpha>iTarget)?{ ??speed=5; }else{ ??speed=-5; }你這段有問題吧,mouseover 的時候?obj.alpha 的值為 30?iTarget的值為 100 , speed 取 -5 ,這樣的話豈不是透明度一直在減小直到最后消失變為負值
2016-04-17
if?(obj.alpha>iTarget)?{ ??speed=5; }else{ ??speed=-5; }你這段有問題吧,mouseover 的時候?obj.alpha 的值為 30?iTarget的值為 100 , speed 取 -5 ,這樣的話豈不是透明度一直在減小直到最后消失變為負值
2016-04-17
代碼中所有的timer和alpha變量都 未定義!未定義!未定義!重要的事情說三遍!(????)??
還有,下次提問發代碼記得選擇代碼語言,純文本看著真的不方便(?▽?),下面展示代碼看著多舒服:
window.onload?=?ChangeColor; function?ChangeColor()?{ ??//定義公有變量timer和alpha ??var?timer?=?null;? ??var?alpha?=?0; ??//***下面所有的timer和alpha變量都未定義!未定義!未定義!重要的事情說三遍! ??var?box=document.getElementsByTagName("div"); ??for?(var?i?=?0;?i?<?box.length;?i++)?{ ????box[i].timer=null;? ????box[i].alpha=30; ????box[i].onmouseover=function(){ ??????ChageAlpha(this,100); ????} ????box[i].onmouseout=function(){ ??????ChageAlpha(this,30); ????} ??} } function?ChageAlpha(obj,iTarget){ ??clearInterval(obj.timer); ??obj.timer=setInterval(function(){ ????var?speed=0; ????if?(obj.alpha>iTarget)?{ ??????speed=5; ????}else{ ??????speed=-5; ????} ????if?(obj.alpha==iTarget)?{ ??????clearInterval(obj.timer); ????}else{ ??????obj.alpha+=speed; ??????obj.style.filter='alpha(opacity:'+obj.alpha+')'; ??????obj.style.opacity=obj.alpha/100; ????} ??},30) }