Autor Zpráva
filio
Profil *
Na internetu jsem našel tento script:


<script type='text/javascript'>
var i = 30;  
  odpocet();
  function odpocet() {
    if(i > 0) {
      var text;
      if((i < 5) && (i > 1)) {
        text = 'sekundy';
      }
      else if(i == 1)
      {
        text = 'sekunda';
      }
      else
      {
        text = 'sekund';
      }
      setTimeout("odpocet()", 1000);
      document.getElementById("cislo").innerHTML = ' Hotovo za ' + i + ' ' + text;i--;} 
      else {
      
      document.getElementById("cislo").innerHTML = '<a href="#">vyrobeno</a>';
    }
  }  
</script>



Potřeboval bych ho upravit tak, aby se podle zbývajících sekund zvětšoval obrázek. Tak, aby se i vedle počtu vteřin ukazoval jednoduchý graf, aby se prostě měnil parametr width u obrázku od 0 do 100. Aby například pokud uplyne 25% z celkového času tak, aby měl obrázek width="25" a pokud uplyne 50% z celkového času tak, aby měl width="50"

Pokud by byl někdo tak laskavý a pomohl mi. Javascript není moje silná stránka.
LosFilipos
Profil
Můžeš použít například toto:

<script type='text/javascript'>
var pocitat_od = 10 // sem je potřeba zadat počet sekund na odpočet
var plynulost = 32; // 1000 = progress bar bude "skákat" po sekundách , 24 = plynule;

/* Začátek skriptu -------------------------------------------------------------------*/
var koeficient_zmeny = 1000 / plynulost;
var pocitat_od = pocitat_od * koeficient_zmeny;
var i = pocitat_od;  
  odpocet();
  function odpocet() {
    if(i > 0) {
      var text, x, k;
      k = Math.ceil(i / koeficient_zmeny);
            
      if((k < 5) && (k > 1)) {
        text = 'sekundy';
      }
      else if(k == 1)
      {
        text = 'sekunda';
      }
      else
      {
        text = 'sekund';
      }
      setTimeout("odpocet()", plynulost);
      x = 100 - ((100*i)/pocitat_od);
      document.getElementById("cislo").innerHTML = ' Hotovo za ' + k + ' ' + text;i--;
      document.getElementById("progress_bar").style.width = x + '%';
      } 
      else {
      
      document.getElementById("cislo").innerHTML = '<a href="#">vyrobeno</a>';
      document.getElementById("progress_bar").style.width = '100%';
    }
  } 


V kódu pak může být něco ve smyslu:

<div id="cislo"></div>
<div style="width:200px;padding:1px;border:1px solid #FF0000;"> <!-- Tohle je tam jenom proto, aby se omezila šířka toho progress baru... -->
<div id="progress_bar" style=height:20px;width:0;background:#FF0000;"> <!-- Progress bar může být div, p, obrázek, atd... -->
</div>
</div>
Witiko
Profil
LosFilipos:
Možná něco v tomto smyslu by dodalo na pochopení proměnné plynulost:

var snimkuZaSekundu = 30;

/* Začátek skriptu -------------------------------------------------------------------*/
var plynulost = 1000 / snimkuZaSekundu;
var koeficient_zmeny = snimkuZaSekundu;


Řádek 27:
setTimeout("odpocet()", plynulost); -> setTimeout(odpocet, plynulost);


Místo funkce odpocet se předává function() {odpocet();}, zbytečně vytvořená funkce navíc. Celkově bych ještě veškeré ' přeměnil za ", ale to už je stylistika.
filio
Profil *
Opravdu moc moc děkuju ani jsem nedoufal, že se někdo ozve takhle rychle. Upravil jsem CSS a je to bomba. Ještě jednou moc díky.

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:

0