我无法在2个函数上重置setInterval(),它们可以被受影响的ID重复使用
继承人javascript:
//Fuction Fade out
function fadeOut(elem, speed) {
if(!elem.style.opacity)
{
elem.style.opacity = 1;
}
if(elem.style.opacity>=1){
setInterval(function(){
if(elem.style.opacity >=0){
elem.style.opacity = parseFloat(elem.style.opacity) - 0.03;}
}, speed /50);
if(elem.style.opacity >=1){
clearInterval(0);
}
}
}
//Função fade in
function fadeIn(elem, speed) {
if(!elem.style.opacity)
{
elem.style.opacity = 0;
}
/*var timerId=*/
if(elem.style.opacity<=0){
setInterval(function(){
if(elem.style.opacity <=1){
elem.style.opacity = parseFloat(elem.style.opacity) + 0.03;}
}, speed /50);
}
/*if(elem.style.opacity >="1"){
clearInterval(timerId);
return;} */
}
我已经尝试了一段时间来解决这个问题,但它没有帮助,当我在fadeout函数上实现第三个“if”时,不透明度值下降,但不是回到0,而是去0,99。我该怎么办?
答案 0 :(得分:0)
clearInterval
需要清除间隔的名称我认为,你需要将你的间隔命名为变量,如下所示:
var myInterval = setInterval(function(){
if(elem.style.opacity >=0){
elem.style.opacity = parseFloat(elem.style.opacity) - 0.03;
}
}, speed /50);
然后你可以这样清楚:
clearInterval(myInterval);