Příklad Javascriptové minutky

Často jsem v práci zapomínala, že jsem si dala vařit vodu na kafe či čaj. Voda se převařila jednou - zapomněla jsem si pro ni dojít, převařila se podruhé, ale skleróza byla neodbytná. Koupit si za pár korun natahovací minutku na tržišti? Její zvuk by pravděpodobně způsobil poplach v kanceláři. Naprogramování si minutky v Javascriptu obnášelo mimo volitelného nastavení hlasitosti upozornění také skvělý trénink v programování.

Do žlutého políčka zadejte čas v sekundách a stiskněte tlačítko Spusť. V případě potřeby je možné běh skriptu zastavit tlačítkem Zastav anebo Esc (na klávesnici). Díky nativní podpoře WAVů v Internet Explorerech je v nich skript bezproblémově funkční. Ve Firefoxu a Opeře se ale bez doinstalovaného pluginu neozve zvuk, proto je zvukové upozornění nastaveno pouze pro IE. Zdrojový kód možno shlédnout »zde«

Bylo zadáno: sekund

Zdrojový kód minutky

<!--[if IE]>       
    <embed src="/extra/zvuk.wav" name="zvuk" hidden width=0 height=0 
    autostart="false" loop="1">
<![endif]-->  
  <div id="minutka">    
    <form name="fm"><span>Bylo zadáno:</span>
      <input type="text" id="zadano" value=""><span> sekund</span><br>
      <input type="text" id="sekundy" name="sekundy">
      <input type="button" id="vyp" value="Zastav" onclick="zastav();">  
    </form><br>
  <div id="sem">
    <img id="kafe" src="/extra/kafe.gif" style="visibility: hidden;">;</div> 
</div>                    

<script type="text/javascript" language="JavaScript"><!--
document.getElementById("zadano").focus();
var c;
var t;
      //aby se běh skriptu neurychlil opakovaným klikáním na "Spusť"               
var zapnuto = false;   
function pocitej()
{
  if(c <= 0)
  {
      document.fm.sekundy.value = c; 
      clearTimeout(t);
      zobrazit('kafe'); 
        if(navigator.appName == "Microsoft Internet Explorer")
          {
          document.zvuk.play();
          } 
          zapnuto = false;
          document.fm.zadano.focus();
          document.fm.zadano.select();
  }
      else
      {
      document.fm.sekundy.value = c;
      }
   c--;
} 

function spust()
{ 
  if(!zapnuto)
  {
  zapnuto = true;
    c = parseInt(document.fm.zadano.value);  
      if(isNaN(c))  
        {
        alert("Zadejte prosím čas v sekundách");
        zastav();
        zapnuto = false;
        document.fm.zadano.focus();
        document.fm.zadano.select();
        }
           else  
           {
           document.fm.zadano.value = parseInt(c);
           document.fm.sekundy.value = parseInt(c);
           c--;   
           t = setInterval(pocitej, 1000);
           }
   }
}

function zastav()
{ 
clearTimeout(t);
zapnuto = false; 
  if(navigator.appName == "Microsoft Internet Explorer")
    {
    document.zvuk.stop();
    }
      document.fm.zadano.focus();
      document.fm.zadano.select();
}

function zobrazit(co)
  {
  var obr = document.getElementById(co), krok = 0.05, o = krok;
  for(var i = krok; i <= 1; i += krok)
     {
     //vzrůstá čas v ms => vzrůstá viditelnost obrázku
  setTimeout(krokAnimace, i * 700); 
     }
    function krokAnimace()
       {
      var of = Math.round((o) * 100);
      obr.style.cssText = "opacity: " + o + "; 
      filter: alpha(opacity=" + of + ");
      -moz-opacity: " + o + "; -khtml-opacity: " + o + "; ";
      o += krok;
       }
  }
//-->
</script>
Javascriptová minutka
<-------- Klientské skripty (Javascript) -------->

Moje stránky s psí tematikou na www.zlatberry.cz

Moje stránky s kutilskou tematikou na www.handy.zlatberry.cz