甫里
2016-04-17 16:37
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)
}
if (obj.alpha>iTarget) {
speed=5;
}else{
speed=-5;
}你这段有问题吧,mouseover 的时候 obj.alpha 的值为 30 iTarget的值为 100 , speed 取 -5 ,这样的话岂不是透明度一直在减小直到最后消失变为负值
if (obj.alpha>iTarget) {
speed=5;
}else{
speed=-5;
}你这段有问题吧,mouseover 的时候 obj.alpha 的值为 30 iTarget的值为 100 , speed 取 -5 ,这样的话岂不是透明度一直在减小直到最后消失变为负值
代码中所有的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)
}JS动画效果
113910 学习 · 1502 问题
相似问题