[ weleb @ 13.05.2011. 20:49 ] @
Može li netko malo objasniti dotične dvije naredbe (parseFloat, parseInt).

Gledam baš neki primjer gdje se koriste za kreiranje fade efekta na jednom slideshowu.

Code:

var opa=document.getElementById('mypic').style;
if(!opa.opacity || opa.opacity==1 ){opa.opacity=0;}
opa.opacity=0.1+parseFloat(opa.opacity);        
            
if(opa.opacity<1){setTimeout("chang()",5); }



Jasno mi je što je opacity CSS svojstvo i da radi u rasponu 0-1, i da se primjenjuje na element mypic i sl. ali mi nije ostatak jasan.

Unaprijed hvala
[ Vlatko Zdrale @ 13.05.2011. 21:32 ] @
parseFloat i parseInt sluze za parsiranje stringa u broj (float ili integer).
Proveravaju da li je prvi karakter stringa cifra, pa ako jeste nastavljaju da parsiraju dalje do kraja broja.
Cesto se koriste da izdvojis (ili proveris) broj iz unesenog stringa.
primer:
Code:
parseFloat("111.11 bla bla")
bi ti vratilo float: 111.11
Code:
parseInt("111.22 bla bla")
vraca integer: 111

dok
Code:
parseFloat("bla bla 111.11")

i
Code:
parseInt("bla bla 111.11")


vracaju NaN (Not-a-Number), jer string nije poceo sa cifrom...
[ weleb @ 13.05.2011. 22:11 ] @
Ok, to mi je jasno ali čemo onda to u ovom primjeru??
[ Vlatko Zdrale @ 14.05.2011. 00:15 ] @
U ovom tvom primeru je verovatno da bi se osigurao da neko nije upisivao nesto bez veze u CSS style za opacity, tj.
ovo ce da prodje
Code:
#mypic {opacity:0.5}

ali ovo nece
Code:
#mypic {opacity:blabla}


[ Aleksandar Ružičić @ 14.05.2011. 00:37 ] @
U ovom delu:

opa.opacity=0.1+parseFloat(opa.opacity);

parseFloat se koristi da pretvori vrednost opa.opacity iz string tipa u float, da bi + znacilo sabiranje, a ne konkatenaciju.

npr, ukoliko je kod izgledao ovako:

opa.opacity=0.1+opa.opacity;

i ako je trenutni opacity elementa 0.5, rezultat te operacije bi bio 0.10.5, jer je opa.opacity string, a pravila javascript kazu "ako je operator + i ako je makar jedan od operanada tipa string izvrsi konkatenaciju i vrati String, u suprotnom izvrsi sabiranje i vrati Number"
[ weleb @ 14.05.2011. 10:25 ] @
Hvala :)
[ Aleksandar Ružičić @ 14.05.2011. 16:04 ] @
Citat:
Vlatko Zdrale: U ovom tvom primeru je verovatno da bi se osigurao da neko nije upisivao nesto bez veze u CSS style za opacity, tj.
ovo ce da prodje
Code:
#mypic {opacity:0.5}

ali ovo nece
Code:
#mypic {opacity:blabla}


samo malo pojasnjenje:
ukoliko browser ne ume da isparsira css vrednost (kao sto je u slucaju opacity: blabla) onda ce je odbaciti i samim tim nece biti dostupna u javascriptu putem HTMLElement.style objekta (trebalo bi da vrati prazan string, a ne "blabla", mada nisam testirao a i nisam siguran da se svi browseri ponasaju isto..)