2014-07-07 5 views
0

비활성 시간 이후에 시간 초과를 설정하고 화면 슬라이드 쇼를 재생하는 화면 보호기를 시작하는 설정 시간 제한이 필요합니다. 사용자가 화면을 클릭하면 해당 기간 동안 프로세스가 다시 시작됩니다. 슬라이드 쇼의 시작 부분에서 회전 목마를 다시 시작합니다. 아래 내 코드, 어떤 도움을 많이 감사드립니다!화면 보호기의 시간 초과 설정

<script> 
    /* The redirect to autoplay page function */ 
    var screenSaverDelay; 
    var screenSaver; 
    var destroySlider; 

    $(document).ready(function(){ 

    setInterval(function(){window.focus();},1000); 
    $('.bxslider').bxSlider(); 

    //var screenSaverDelay; 

    $('body').click(function(event) { 
     killScreenSaver(); 
    }); 

    function startScreenSaver() { 
     clearTimeout(screenSaver); 
     screenSaver=setTimeout(startScreenSaver,1000); 
     $('#screensaver').show(); 
     $('.bxslider').bxSlider(); 
    }//end 

    function killScreenSaver() { 
     $('#screensaver').hide(); 
     $('.bxslider').destroySlider(); 
     clearTimeout(screenSaver); 
     screenSaver=setTimeout(killScreenSaver,300000); 
    }//end 

    $(document).ready(function(){ 
    setInterval(function(){window.focus();},1000); 
    }); 
    startScreenSaver(); 
    }); 

</script> 
+0

그래서, 문제가 무엇 보인다 제대로 작동하기 위해? 어떤 오류 또는 잘못된 행동을하고 있습니까? –

+0

당신이 [Stackoverflow 질문] (https://stackoverflow.com/questions/3745076/jquery-simple-screensaver) 좀 봐 있었나요? –

답변

0

설정된 시간이 지난 후에 화면 보호기를 시작하려면 setInterval을 사용하면 안되며 setTimeout을 사용해야합니다. 또한 사용자가 아무 곳이나 클릭 할 때 제한 시간을 다시 설정하는 문서에 항목을 바인딩하려고합니다.

은 이런 식으로 doc.ready 변경

:

$(document).ready(function() { 
    var screenSaverTime = 60000, // 1 minute 
     myTimer = setTimeout(function() { startScreenSaver(); }, screenSaverTime);  

    $(document).bind(click, function() { 
    clearTimeout(myTimer); 
    myTimer = setTimeout(function() { startScreenSaver(); }, screenSaverTime); 
    }); 
}); 

서로 다른 활동을 많이 수신하고 그 중 하나에 타이머를 재설정, 같은 것을하고 싶었다 경우

var resetTimer; 

$(document).ready(function() { 
    var screenSaverTime = 60000, // 1 minute 
     myTimer = setTimeout(function() { startScreenSaver(); }, screenSaverTime); 

    resetTimer = function() { 
    clearTimeout(myTimer); 
    myTimer = setTimeout(function() { startScreenSaver(); }, screenSaverTime); 
    }; 

    $(document).bind(click, function() { 
    resetTimer(); 
    }).mousemove(function() { 
    resetTimer(); 
    }); 
}); 

그런 다음 스크립트의 다른 곳에서 resetTimer를 호출 할 수 있습니다 (문서가 이미로드되어있는 경우).

0

덕분에 모든 사람들이 환호

<script> 
    /* The redirect to autoplay page function */ 
    var screenSaverDelay; 
    var screenSaver; 

    $(document).ready(function(){ 
     setInterval(function(){window.focus();},1000); 
     $('body').click(function(event) { 
      killScreenSaver(); 
     }); 
     startScreenSaver(); 
    }); 

    function startScreenSaver() { 
     clearTimeout(screenSaver); 
     $('#screensaver').show(); 
     screenSaver = $('.bxslider').bxSlider(); 
    }//end 

    function killScreenSaver() { 
     $('#screensaver').hide(); 
     screenSaver.destroySlider(); 
     clearTimeout(screenSaverDelay); 
     screenSaverDelay=setTimeout(startScreenSaver,300000); 
    }//end 


    </script>