Autor Zpráva
Joan
Profil
Využila jsem svých drobných znalostí plus laskavé nápomoci z fóra a spáchala jsem si skript, který mi bude velice k užitku! Předesílám, že na stránce je ZVUK. Než sklidím nevraživou kritiku ;-) za ozvučení, tak po vyzkoušení mé funkce budu pravděpodobně omilostněna.

Co mě hnalo k vytvoření takové stránky? V práci si musím vařit vodu na kafe či čaj v kuchyňce. Není problém si tam dojít, ale mám obrovský problém si pak na tu vodu vzpomenout! Když si konečně po čtvrthodině vzpomenu, tak je voda vlažná. Další ohřátí vede k dalšímu zapomenutí atd. Už mě to přestalo bavit :)

Můj výtvor mi v podstatě funguje, už jsem se smířila s tím, že pouze v IE. Předlouho jsem se prala s nepochopitelným přehráním zvuku v Opeře okamžitě po natažení stránky, Firefox se dožadoval pluginu Apple QuickTime. Pak jsem přišla na to, čím to je: podmíněným komentářem tohoto typu! Když jsem podm. komentář napsala normálně, Opera KONEČNĚ zmlka a i Firefox zapomněl na nedostupnost pluginu. Tedy akovýto zádrhel se zápisem podmíněného komentáře jsem nečekala ani omylem.
S jedním problémem bych ale prosila lehce pomoci: chci, aby se do inputu "Bylo zadáno:" vepsala tatáž hodnota, od které se má odpočítávat (tj. v tomhle i v zeleně orámovaném políčku aby bylo totožné číslo), ale nedocílila jsem žádným způsobem toho, aby se odpočítával pouze čas a co bylo zadáno, aby se nehnulo z místa. Vždycky se mi začalo zmenšovat i toto číslo. Jde nějak "zakázat" funkce pro konkrétní vstup? Do komentáře jsem uzavřela poslední ze svých pokusů ale taky potvora odečítá :-( tj. 11. a 12. řádek nedělá, co jsem chtěla.

P.S.: Zvuk je hrozný, ale lepší nenápadný WAV jaksi nemám (aspoň prozatím)

<body onload="zmenaStylu('sekundy', 'styl_pred'); document.fm.sekundy.focus();">
<script language="JavaScript" type="text/javascript"><!--  
var c;
var t;
//var k;
var zapnuto = 0;
function pocitej()
{
c = parseInt(document.fm.sekundy.value);
            //if(k = parseInt(document.fm.sekundy.value))    {
            //document.fm.zadano.value = "Bylo zadáno: "+k+ " sekund"; }
      if(c>0)
  {
  c = c-1;
  document.fm.sekundy.value = c;
  t = setTimeout(pocitej, 1000);
  if(c==0)
      {
      zobrazit('kafe');        
      }
  }
    else
  {
  clearTimeout(t);
  }
} 

function spust()
{
if(!zapnuto)
  {
  zapnuto = 1;
  t = setTimeout(pocitej, 1000);
  }
}

function zastav()
{
clearTimeout(t);
zapnuto = 0;
document.zvuk.stop();
}

function zmenaStylu(prvek, styl)
{
   document.getElementById(prvek).className = styl;  
   //if(document.getElementById(prvek).className == styl_po)
   //{function pomaluZobraz}
} 

function zobrazit(co)
          {
  var obr = document.getElementById(co), krok = 0.05, o = krok;
  for(var i = krok; i <= 1; i += krok)    //za var krok lze rovnou dosadit 0.05
              {
    setTimeout(krokAnimace, i * 700); //vzrusta cas v ms => vzrusta tmavost obrazku
              }
  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>
<div id="minutka">
  <h2>Pro zapomnětlivé...</h2>
    <p>Do zeleného políčka zadejte čas v <em><b>sekundách</b></em> a stiskněte tlačítko <em><b>Spusť</b></em>. V případě potřeby je možné běh skriptu zastavit tlačítkem <em><b>Zastav</b></em> anebo <em><b>Esc</b></em> . 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.</p>
<form name="fm">
<input type="text" id="zadano" name="zadano" size=20 value="Bylo zadáno:"><br>
<input type="button" id="zap" value="Spusť" onclick="spust();">
<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="kafe.gif" style="visibility: hidden;">
</div>
    </div>
  </body>
habendorf
Profil
Joan:

Nechce se mi to zkoumat celé, ale jednu chybu vidím na první pohled:

if(k == parseInt(document.fm.sekundy.value))
habendorf
Profil
A nebo si ulož do oblíbených tuhle adresu: http://e.ggtimer.com/3minutes (čas nastav podle sebe, pokud dáš jen číslo, bude to v sekundách)

Ale chápu, že ani tak nechceš hotové řešení, jako spíš pocvičit se v JS ;o)
Joan
Profil
habendorf:
Díky za snahu, ale ani po protření brejlí tam nevidím DVĚ rovnítka, pouze jedno :-) . A neměnila jsem nic.
Přesně tak, hotové jsem našla, ale tím se nenaučím nic.
habendorf
Profil
Joan:
ale ani po protření brejlí tam nevidím DVĚ rovnítka, pouze jedno

No právě :o))
Joan
Profil
habendorf:
Bože, já jsem vůůl :-)
Joan
Profil
habendorf:
Zkouším všechno možné, ale po zdvojení rovnítka (a samozřejmě odkomentování 5., 10. a 11.řádku) zůstane tento kousek skriptu zcela bez povšimnutí. S jedním rovnítkem to aspoň odečítalo, se dvěma už to nedělá vůbec nic.
Místo 10. řádku jsem zkusila i
if(k == c)

ale taky bez úspěchu.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: