2016-05-28 5 views
0

им возникают проблемы переустановку setInterval() на 2-х функций, они suposed для повторного использования затрагиваемой ИдентификаторыReset SetInterval повторить функцию на другом ID

Heres на 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, доблесть непрозрачности снижается, но вместо возврата к 0 она равна 0,99. Что я могу сделать?

ответ

0

clearInterval нужно имя интервала, чтобы очистить Я думаю, вам нужно назвать поставить вас интервал в переменной, как это:

var myInterval = setInterval(function(){ 
    if(elem.style.opacity >=0){ 
    elem.style.opacity = parseFloat(elem.style.opacity) - 0.03; 
    } 
}, speed /50); 

то ча очистить это так:

clearInterval(myInterval);