重置SetInterval以在另一个ID上重复该功能

时间:2016-05-28 19:01:36

标签: javascript html css fadein fadeout

我无法在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。我该怎么办?

1 个答案:

答案 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);