Menu

Faire une pause javascript proprement

artemis0 870 Messages postés vendredi 3 janvier 2014Date d'inscription 6 février 2018 Dernière intervention - 31 déc. 2017 à 18:33
Bonjour,

j'ai le code ci-dessous.
le premier script est pour faire un autoscroll et le deuxième pour une heure dynamique avec les secondes.
Mais j'ai un problème :
j'ai fait en sorte qu'il y ait une pause quand le curseur arrive en bas, mais cela bloque l'exécution de mon deuxième script. Donc les secondes s'arrêtent de défiler pendant un petit moment. Comment faire pour que les secondes ne soient pas bloquées ?

<script language="JavaScript">
   function sleep(seconds){
    var waitUntil = new Date().getTime() + seconds*1000;
    while(new Date().getTime() < waitUntil) true;
   }
   function start_scroll_down() { 
    scroll = setInterval(function(){ window.scrollBy(0, 1);}, 20);
   }
   window.onscroll = function(ev) {
       if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight) {
     <bold>sleep(2);</bold>
     (function smoothscroll(){
      var currentScroll = document.documentElement.scrollTop || document.body.scrollTop;
      if (currentScroll > 0) {
       window.requestAnimationFrame(smoothscroll);
       window.scrollTo (0,currentScroll - (currentScroll/5));
     }
    })();
       }
   };
   start_scroll_down();
  </script> 
  <script>
   function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    var s = today.getSeconds();
    m = checkTime(m);
    s = checkTime(s);
    document.getElementById('txt').innerHTML =
    h + ":" + m + ":" + s;
    var t = setTimeout(startTime, 500);
   }
   function checkTime(i) {
    if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
    return i;
   }
  </script>


merci
Afficher la suite