2012-06-12 2 views
-1

div가 있습니다. 매 시간마다 페이드 아웃하고 싶습니다. 하지만 시간이 지나면 div가 완전히 사라 지길 바래요. 다음 코드를 사용하여 작업을 시도했지만 작동하지 않는 이유를 모르겠습니다.타이머 후 JQuery else 문

var now = (new Date()).getTime(); 
    var lastTime = 0; 
    var lastTimeStr = localStorage['lastTime']; 
    if (lastTimeStr) lastTime = parseInt(lastTimeStr, 10); 
    if (now - lastTime > 1000 *60*60) { 
    $('#startup').delay(1500).fadeOut(2000); 
    } 
    else { 
    $('#startup').addClass('nodisplay'); 
    } 

    localStorage['lastTime'] = ""+now;​ 

현재까지 else 문까지 모두 정상적으로 작동합니다. 나는 왜 그것이 작동하지 않을지 모르겠다.

;

답변

0
setInterval(function(){ 
     $('#startup').show().delay(1500).fadeOut(2000); 
}, 1000*60*60); 

훨씬 단순 방식 (PS : 없음 : CSS의 .nodisplay 단지 표시 없음). 'nodisplay' 클래스는 필요하지 않습니다. fadeOut 발생 후 jQuery는 display:none을 사용합니다. 그 후에는 숨겨진 상태로 유지됩니다.

http://jsfiddle.net/T3yqP/1/

+0

이것은 1.5 ~ 3.5 초마다 시간 요소를 나타낸다. OP가 원했던 것이 확실합니까? – jfriend00

+0

내가 오해했을 수도 있습니다. 그러나 나는 왜 그의 질문에서 모였다. – Fresheyeball

+0

감사합니다 Fresheyeball하지만 jfriend이 옳습니다. 나는 fadeout 애니메이션이 매 시간마다 한 번씩 나타나기를 원합니다. 다른 모든 시간에 요소가 숨겨져 있습니다. – MeltingDog