Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Javascript Image problem

[es] :: Javascript i AJAX :: Javascript Image problem

[ Pregleda: 1504 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mr.Joker
Aleksandar Arsic
Srbija

Član broj: 296844
Poruke: 42
*.dynamic.sbb.rs.



+1 Profil

icon Javascript Image problem08.01.2012. u 21:18 - pre 149 meseci
Pokušavam da shavatim funkcionisanje upotrebe slika sa javaskriptama i sada sam našao ovaj kod:

Code:
<html>
<head>
<script type="text/javascript">
<!--
image01= new Image()
image01.src="1.gif"
image02= new Image()
image02.src="3.gif"
//-->
</script>
</head>

<body>
<a href="whatever.htm" onmouseover=
"document.images['example'].src=image02.src" onmouseout=
"document.images['example'].src=image01.src">
<img src="1.gif" name="example"></a>
</body>

</html>

Sada mi nije ovde ništa jasno. Kako to uopšte radi neka mi neko objasni. Ima li prostija verzija ovoga? Ovo je image rollover.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript Image problem10.01.2012. u 14:05 - pre 149 meseci
Ako bi rollover pravili na taj nacin (pomocu javascripta), evo sta bi bio prvi pokusaj:

Code (html):

<a href="whatever.htm" onmouseover="document.images['example'].src='3.gif'" onmouseout=
"document.images['example'].src='1.gif'"><img src="1.gif" name="example"></a>
 


i to bi radilo, ali sa jednim "malim" problemom, kada prvi put hoverujes taj link browser bi tek tada poslao zahtev za 3.gif (jer pre toga nije "cuo" za taj resurs) i za to vreme dok browser posalje request, server ga obradi i odgovori i dok browser ucita sliku (3.gif) tebi ce se prikazati "prazna slika" na neki delic sekunde, ili vise (u zavisnosti od brzine konekcije).

e da se to ne bi desilo, potrebno je da ucitamo hover sliku sto je ranije moguce, tako da je browser vec ima u cacheu kada bude rebao da je prikaze po prvi put.
to najjednostavnije mozemo da uradimo pomocu Image javascript objekta:

Code (javascript):

new Image.src = '3.gif';
 


ovde smo kreirali novu instancu Image objekta (new Image) i src atributu te instance smo dodelili vrednost 3.gif. Image objekat funkcionise tako da kada mu se promeni src odmah salje upit serveru (na url koji odgovara vrednosti src atributa) i dovucenu sliku drzi u memoriji tako da bude spremna za prikazivanje kada to bude bilo potrebno.

Znaci html kod nam sada izgleda ovako:
Code (html):

<script type="text/javascript">new Image.src = '3.gif';</script>
<a href="whatever.htm" onmouseover="document.images['example'].src='3.gif'" onmouseout=
"document.images['example'].src='1.gif'"><img src="1.gif" name="example"></a>
 


i ovim smo se resili problema "prazne slike".

kod koji si ti dao radi to isto, samo jos i nepotrebno ucitava 1.gif, on ce vec biti ucitan kada browser naidje na <img /> element (koji u oop metodologiji mozemo da posmatramo kao podklasu Image objekta, tj DOM objekat koji odgovara <img /> elementu ima istu funkcionalnost kao Image objekat).

E sad, to bi bilo to o js preloaderu, ali rollover je najbolje uraditi sa nekom css tehnikom, jer ce to da radi i u onim browserima koji ne podrzavaju javascript (kojih vise i nema, da budemo realni) kao i u browserima koji podrzavaju javascript ali su ga korisnici disableovali (kojih ipak ima dovoljno da valja misliti i na njih).

Sto se konkretno Image objekta tice, ja sam ga koristio samo kada sam pisao skriptu za serviranje banera pa mi je trebao jednostavan nacin da zabelezim impresiju, npr:
Code:

new Image.src = 'http://example.com/track_view?id=123456789abcdef&ts=' + +new Date;


to lepo posalje GET upit serveru koji uredno vrati 204 odgovor (tj no content). Ispostavilo se da je koriscenje Image objekta za tu namenu pun pogodak..
 
Odgovor na temu

Mr.Joker
Aleksandar Arsic
Srbija

Član broj: 296844
Poruke: 42
*.dynamic.sbb.rs.



+1 Profil

icon Re: Javascript Image problem11.01.2012. u 01:11 - pre 149 meseci
Hvala :D
 
Odgovor na temu

[es] :: Javascript i AJAX :: Javascript Image problem

[ Pregleda: 1504 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.