设置屏保超时时间

Set Timeout for screensaver

本文关键字:时间 超时 设置      更新时间:2023-09-26

我需要一个设置超时,它将在非活动时间后设置超时,然后启动一个屏幕保护程序,它播放幻灯片的轮播,当用户单击屏幕时,它将重新启动该过程,同时在幻灯片开始时启动轮播。下面是我的代码,任何帮助都非常感激,谢谢!

<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>

如果你想在一段时间后启动屏保,你不应该使用setInterval,你应该使用setTimeout。您还需要在文档中绑定一些内容,以便在用户单击任何地方时重置超时时间。

更改您的文档。准备好这样做:

$(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(只要你的文档已经加载)

谢谢大家,这似乎是正常工作,干杯

<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>