街角疯
2017-06-08 09:52
<script type="text/javascript">
window.onload=function(){
var Odiv=document.getElementById("box");
Odiv.onmouseover=function(){
starMove(100);
}
Odiv.onmouseout=function(){
starMove(30);
}
}
var alpha=30;
var timer=null;
function starMove(iTager){
var Odiv=document.getElementById("box");
clearInterval(timer);
timer=setInterval(function(){
var speed=0;
if(alpha>iTager){
speed=-10;
}
else{
speed=10;
}
if(alpha==iTager){
clearInterval(timer);
}
else{
alpha+=speed;
Odiv.style.filter='alpha(opacity:'+alpha+')';
Odiv.style.opacity=alpha/100;
}
},30)
}
</script>
在这个代码中如果我将 var alpha=30; var timer=null;这两句放入在starMove()函数中,就不能实现课程中的效果,为什么?只能这样写吗?
因为每一次的循环调用都初始化了它的值 使其无法叠加
因为每次执行starMove()函数时 var alpha=30; var timer=null 都是初始值,导致之前执行后的数值无法使用,就像运行一次。 var alpha=40,当你写在函数里面 var alpha=30,导致 var alpha=30而不是40
JS动画效果
113925 学习 · 1443 问题
相似问题
回答 2
回答 1