Jump to content
php.lv forumi

Ajax bildes maiņa


Stopp

Recommended Posts

Kā varētu izdarīt tā, lai, kad es nospiežu pogu, tad nomainas viena bilde, bet, kamēr tā bilde vēl nav ielādējusies, tikmēr tās bildes vietā rādas kaut kāda loading bilde.

 

Nesaprotu, kā lai es noskaidroju, kad bilde ir ielādējusies. Ar ajaxu es laikam varēšu izdabūt tikai tekstu laukā no kāda faila, bet kā ar bildēm?

Link to comment
Share on other sites

Viens varētu būt izmantojot onload. Sīkumos neizplūdīšu, jo pats neesmu mēģinājis, bet doma tāda:

 

- Ar JS ievietojam DOM kokā to loading attēlu. Atceramies referenci uz to.

- Ievietojam DOM saturā tavu attēlu. Piekabinam klāt tam onload eventu, kas, kad bilde būs pabeigusi lādēties, paslēps (vai izņems no DOM) loading attēlu. Vajadzētu tikai izdomāt kā darīt, lai nerādītos pusielādēts fails.

 

Var vēl mēģināt arī ar JS priekšielādēt (preload) attēlu. Pagūglē uz javascript image preloading vai kaut ko tādu.

 

Bet gan jau kāds, kas tiešām ar to būs darījies, zinas precīzāku atbildi ;).

Link to comment
Share on other sites

Bet vai nav tā, ka browseris nelādē failus, kam ir display: none ?

 

Domāju, ka tu visu vajag apvienot ar image preloading.

 

1) Ievietojam loading attēlu,

2) Pieprasam ielādējamās bildes nosaukumu,

3) Ar JS preloadējam šo attēlu,

4) Izņemam loading, ievietojam attēlu.

 

Ja JS tiešām ir stricti lineārs, tad vajadzētu strādāt.

Edited by andrisp
Link to comment
Share on other sites

Ajax te toč nav nepieciešams. andrisp praktiski visu arī izstāstīja. Vienīgi:

 

Vajadzētu tikai izdomāt kā darīt, lai nerādītos pusielādēts fails.

 

Attēlam jāuzliek style="visibility: none;" un pie ielādēšanās visibility: visible.. Loader attēlu var vienkārši iegrūzt backgroundā, lai nevajadzētu lieki slēpt/ rādīt.

 

Bet vai nav tā, ka browseris nelādē failus, kam ir display: none ?

 

Man liekās, ka jā. Tādēļ visibility: hidden;. Vai arī sliktākajā gadījumā - position: absolute; top: -1000px; =)

Link to comment
Share on other sites

Nuu, preloads, paldies nē. Ja tas man būtu pieņemams, būtu taisījis tā. Nav preloadings grūts.

 

Paldies par labajām idejām, šis tas ienāca prātā, uz tām paskatoties :)

 

Bet vai nav tā, ka browseris nelādē failus, kam ir display: none ?

Vismaz ielādē tad, ja viņš ir div/span-ā, kam ir display: none. Ar to pietiek.

Link to comment
Share on other sites

Tāpat nesapratu, kas tur slikts, ja tu ielādē bildi ar JS, un tikai tad ievieto viņu iekš DOM. Un jau teicu, ka to domāju tā, ka tikai pa viena bildei preloadēt - un preloadēt tikai tāpēc, lai nebūtu jāskatās uz bildes ielādes procesu. Bet vispār bez tā arī var iztikt, jo GedroX jau teica, ka elements ar visibilty: hidden arī tiek ielādēts.

Link to comment
Share on other sites

Ja nemaldos, tad tas aizpilda lapu ar tukšu vietu tur, kur viņam būtu jābūt redzamam, tāpēc visibility ar nelietošu. Nu, hmm, pamēģināšu tagad uztaisīt to savu ideju, ja nesanāks, tad kaut kam citam pieskaršos.

Link to comment
Share on other sites

×
×
  • Create New...