Autor Zpráva
eriduan
Profil
Zdravíčko.

Riešim teraz jednu jednoduchú vec. Kódim 404 error page ktorú mám nastavenú tak že po istom čase sa sama prelinkuje inam.
Avšak chcem aby tých 20 sekúnd bolo viditeľných a užívateľ videl koľko ešte zostáva času.
Takže som si nakódil mnoho odpočítavadieľ ale ani jeden mi nefungoval.
Potom som našiel toto:

<script type="text/javascript">
var odpocitavani = 19; // cas v sekundách
var casovac;

function odpocet(){
odpocitavani--;

document.getElementById('odp').innerHTML = " Page refresh in " + odpocitavani + " sec.";

if(odpocitavani > 0) return;

window.clearInterval(casovac);

document.getElementById('odp').innerHTML = "Engage!!!";
// akce po skonceni odpocitavani

}

casovac = window.setInterval("odpocet()", odpocitavani*100);
</script>

A ono je problém že ten kód je, asi správne nakodeny no :
1. delay je tam dvojnásobný, jeden interval neni 1 sekunda
2. chcel by som spraviť dvojnásobne vačšie písmo v oblasti číslic. Velkostou zvacsit

-- prosim vie niekto pomoct ako:
1. napravit aby to trvalo presne 20 sekund a na konci tesne pred refreshnutim stranky nech je vidiet Engage!!!
2. ako to spravit? aby tie odpocitavajuce sa sekundy mali vacsi font nez okolite pismo?


ak mate zaujem tak na tomto linku je mozne vidiet ako to odpocitavanie funguje

dakujem
Chamurappi
Profil
Reaguji na eriduana:
delay je tam dvojnásobný, jeden interval neni 1 sekunda
Prodlevu mezi voláními funkce jsi z nějakého neznámého důvodu dal odpocitavani*100, tedy 1900 milisekund.

chcel by som spraviť dvojnásobne vačšie písmo v oblasti číslic
Jako nějak v závislosti na čase? Jestli ne, tak font-size v CSS asi znáš…
Keeehi
Profil
<span id="odp"></span>
  
<script type="text/javascript">
var odpocitavani = 10; 
var elm = document.getElementById('odp');
 
function odpocet() {
    if(odpocitavani > 1) {
        elm.innerHTML = " Page refresh in <span style=\"font-size:2em;\">" + odpocitavani + "</span> sec.";
    }
    else if (odpocitavani > 0) {
        elm.innerHTML = "Engage!!!";
    }
    else {
        window.location.href = "http://seznam.cz";
    }

    odpocitavani--;
}
 
window.setInterval(odpocet, 1000);
odpocet();
</script>
eriduan
Profil
Chamurappi:
Prodlevu mezi voláními funkce jsi z nějakého neznámého důvodu dal odpocitavani*100, tedy 1900 milisekund.
Ahaaaaaa
tak toto mi tam štrikovalo problemy...

Jestli ne, tak font-size v CSS asi znáš…
no poznam, ale neviem ako to implementovat..

Keeehi:
elm.innerHTML = " Page refresh in <span style=\"font-size:2em;\">" + odpocitavani + "</span> sec.";

tunaka som si to takto skusal ale neslo mi to a uz vidim preco .. ja som ten span nestrčil do zátvoriek.
u mna to vypadalo takto

= " Page refresh in " <span style=\"font-size:2em;\"> + odpocitavani + </span> " sec.";

a to mi nic nespravilo ked som to vyskusal .. takze musi to byt vnutri..
ale presne o takuto vec som sa pokusal.. o jednoduche zväčšenie


window.location.href = "http://seznam.cz";
tento prikaz som nepoznal .. takze som nevedel ze sa to da aj takto
otazka?
je to lepsie mat preklik zviazany priamo s java scriptom ... lebo doteraz som mal v hlavicke
<meta http-equiv="refresh" content="20; url=http://www.rockpro.cz/" />
to aby mi to skocilo po 20 sekundach a ten script mi mal iba zobrazit odpocet..
totiz nevedel som ze sa to da aj takto ... priamo v kode prelinkovat.

dakujem moc pekne za ten zdrojak .. to je presne to co som skusal vytvorit.. inac .. aby som doplnil svoje vedomosti.. tak tu prikladám dalšiu verziu co som skusil sam ako prve nprogramovat.. ale vobec mi to nefunguje.. a chcel by som vediet ci je to logicky spravne ten script. ci tam mam nejake logice chyby a pocita to bludy namiesto toho co by to malo???


  <script>
 function odpocet(vysledok) 
  {
    var z;
     z=z-1;
    return z  
  };
     var x, premenna;
     x = 20;
     premenna = setInterval("odpocet(x)", 1000); // načasuje akci 
 //    clearTimeout(proměnná); // zruší načasování 
      document.getElementById("cislo").innerHTML = premenna;
 </script>
Keeehi
Profil
<meta http-equiv="refresh" content="20; url=http://www.rockpro.cz/" />
Je samozřejmě správně a bude fungovat i při vypnutém javascriptu, jen se při tom vypnutém javascriptu nezobrazí odpočítávání. Záleží na tom, jestli chcete přesměrovávat, i když se odpočet nezobrazí.

Ten kód v [#4] je naprostá blbost. Ještě horší než ten v [#1]
eriduan
Profil
Keeehi:
Ten kód v [#4] je naprostá blbost. Ještě horší než ten v [#1]

Dakujem :D :D
vedel som ze nefunguje spravne. ale nevedel som preco.
pokusim sa na to este pozriet co to vlastne robi. ale moc funkciam nerozumiem.

Záleží na tom, jestli chcete přesměrovávat, i když se odpočet nezobrazí.
no to je v tom, zaujimalo ma to druhe. aj s vykreslenym odpoctom. dakujem za odpovede.

aj za fungujuci zdrojak. som lama :D

EDIT : doplneny kod a otazka

skusil som sa na ten moj kod pozriet, že či to budem vediet opravit
a tu ho prikladam,uz je to lepsie ?

  <script>
     var x;
     x = 20;
 function odpocet() 
  {
     x=x-1;
    return x;  
  }

     window.setInterval("odpocet()", 1000); // načasujem funkciu ako casto ju vykonat
        odpocet();   //vykonam funkciu
      document.getElementById("odpocet").innerHTML = x;   //neviem co sa satane s page ale nakresli mi x
 </script>

jedine co nerozumiem je tato cast document.getElementById("odpocet")
co je to ten odp vo vasom kontexte a co to odpocet. preco ho vlastne volam znova


EDIT 2:
ok, skusil som si ho spustit ale neodpocitava nic. zastane na 19 ktoru vykresli na zaciatku. ale aspon viem ze nie 20 :D



EDIT 3:

parada pochopil som to.. chyba bola v tom prikaze ktoremu nerozumiem.. musim ho vlozit dnu do funkcie a plus prihodit este jeden nejaky span ktory sa na ten prikaz ktoremu nerozumiem odkazuje .. konkretne

 <span id="kikiriki"></span>
  <script> 
     var x;
     x = 20;
 function odpocet() 
  {
     x=x-1;  
    document.getElementById("kikiriki").innerHTML = x;   //neviem co sa satane s page ale nakresli mi x
  }

     window.setInterval("odpocet()", 1000); // načasujem funkciu ako casto ju vykonat
    odpocet();   //vykonam funkciu
    
 </script>
Keeehi
Profil
A celé to jde zkrátit na:
<span id="kikiriki"></span>
<script>
    var x = 20;
    function odpocet () {
        document.getElementById("kikiriki").innerHTML = x--;   //neviem co sa satane s page ale nakresli mi x
    }

    window.setInterval(odpocet, 1000); // načasujem funkciu ako casto ju vykonat
    odpocet();   //vykonam funkciu
</script>
eriduan
Profil
Keeehi:
páááni
:O :O :O
klobúčik dolu. tomu sa povie optimalizácia. !!!!

Keeehi ste macher. :)


otazka .. spravne chapem ze ten span id="kikiriki" mi spusti script document.getElementById("kikiriki").innerHTML ???
pcmanik
Profil
eriduan:
Co aky script? Tam je casovac, ktory kazdu sekundu vyberie element s id kikiriki a vlozi do neho aktualnu hodnotu x zmensenu o 1.

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:

Prosím používejte diakritiku a interpunkci.

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