× Aktuálně z oboru

Vychází Game Ready ovladače pro Far Cry 5 [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]
Celá zprávička [ clanek/2018040603-vychazi-game-ready-ovladace-pro-far-cry-5/ ]

Animace - JavaScript

[ http://programujte.com/profil/20356-dusan-ludes/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/20356-jan-metelka/ ]Google [ ?rel=author ]       24. 12. 2005       19 831×

Dnes bych vám chtěl ukázat, jak pomocí JavaScriptu můžeme udělat jednodušší animaci.

Chtěl bych ukázat tři možnosti animace zleva, shora a z obou stran naráz.


Nejdříve si uděláme normální html stránku, do které vložíme nasledující kód.


<body onload="lev('jed',-200,0,1,1)">

<img src="1.gif" id="jed" style="position: absolute; left: 0px; top: 0px; weight: 200px; height: 200px;">

</body>
Můžete to použít do mnoha jiných tagů.

Tohle se dosadí do funkce:

jed - Dosadí se za jme..
-200 - Kde je start prvku od jeho normální pozice.
0 - Kde je konec prvku od jeho normální pozice.
1 - O kolik pixelu se bude posouvat.
1 - Jak a za jaký čas se prvek posune o námi určený počet pixelů.
Přečtěte si to celé, ať to pochopíte !



Toto bude platit v každém ze tří scriptů.


    zac="document.getElementById";
    end=".style";

Začneme tedy animací zleva.


function lev(jme, sta, kon, pos, rych){  
  
    if (sta < kon){ //Podmínka start musí být menší než konec. 
                           //když to tak není, nic se nestane 
                           //a zůstane tam kde je.
      eval(zac + '("' + jme + '")' + end + '.left = sta');
      sta=sta+pos; 
      setTimeout("lev('"+jme+"',"+sta+","+kon+","+pos+","+rych+")",rych);
     }    
  
}


Tady popíši, co co znamená:

lev - Pojmenování funkce.
jme - Je identifikace toho prvku, neboli jeho id, které je jed.
sta - Kolik pixelů od mista, na kterém je normálně, bude startovat.
kon - Na kolika pixelech, od jeho mista id="jed", bude startovat.
pos - O kolik pixelů se bude posouvat za námi určený čas.
rych - Ten náš čas. Ale pozor je to v ms což znamená 1s=1000ms.
eval - Po každém spustění funkce přepočítá pozici.
sta=sta+pos; může to být i takhle zapsané: sta += pos; - Díky tomuhle se to posune o námi určený počet pixelů.
setTimeout - Naše časování-platí,že čím menší číslo, tím větší rychlost. A dosadí se sem rych.

Tahle pojede zvrchu a dá se říct, že všechno platí stejně jako u předchozího scriptu, jenže to pojede zezhora.

function hor(jme, sta, kon, pos, rych){  
  
    if (sta < kon){ 
      eval(zac + '("' + jme + '")' + end + '.top = sta');
      sta=sta+pos; 
      setTimeout("hor('"+jme+"',"+sta+","+kon+","+pos+","+rych+")",rych);
     }    
  
}


Platí to samé, ale přijede z obou stran najednou a uvědomte si, že to pojede na left i top, takže bude platit left=top.


function oboje(jme, sta, kon, pos, rych){  
  
    if (sta < kon){ 
      eval(zac + '("' + jme + '")' + end + '.top = sta');
      eval(zac + '("' + jme + '")' + end + '.left = sta');
      sta=sta+pos; 
      setTimeout("oboje('"+jme+"',"+sta+","+kon+","+pos+","+rych+")",rych);
     }    
  
}




Radši si to zkuste, ať uvidíte jak to vypadá.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2005122101-animace-javascript/ ].