Forum » Programiranje » [javascript] Izmenjava teksta in slik
[javascript] Izmenjava teksta in slik
kornilov ::
Pozdravljeni dobri ljudje,
na spletu sem našel kodo za "slider" teksta in slik. Izmenjava je 3 sekunde. Hotel sem dodati še možnost, da s klikom na gumb naprej ali nazaj preskoči na naslednjo oziroma predhodno pozicijo.
Ko kliknem gumb za naprej, se interval pavze razpolovi, in vsak naslednji interval prikazovanja je krajši. :)
Kaj sem dodal ali spremenil v prvotni kodi:
1. Dodal sem kodo med 51 in 63 vrstico
2. Funkciji swapImage() sem dodal parameter(direction), prej je bila prazna; 38 vrstica
3. V HTML kodi sem onclick priredil funkciji swapImage('back' ali 'next'); spodnja koda 6 in 7 vrstica
- Gumb za naprej deluje, zamenja sliko in tekst, vendar zmanjša interval prikazovanja
- Gumb za nazaj deluje napačno in zamenja sliko in tekst naprej, tako kot zgornji gumb
javascript:
HTML:
na spletu sem našel kodo za "slider" teksta in slik. Izmenjava je 3 sekunde. Hotel sem dodati še možnost, da s klikom na gumb naprej ali nazaj preskoči na naslednjo oziroma predhodno pozicijo.
Ko kliknem gumb za naprej, se interval pavze razpolovi, in vsak naslednji interval prikazovanja je krajši. :)
Kaj sem dodal ali spremenil v prvotni kodi:
1. Dodal sem kodo med 51 in 63 vrstico
2. Funkciji swapImage() sem dodal parameter(direction), prej je bila prazna; 38 vrstica
3. V HTML kodi sem onclick priredil funkciji swapImage('back' ali 'next'); spodnja koda 6 in 7 vrstica
- Gumb za naprej deluje, zamenja sliko in tekst, vendar zmanjša interval prikazovanja
- Gumb za nazaj deluje napačno in zamenja sliko in tekst naprej, tako kot zgornji gumb
javascript:
// Začetek Slideshow var i = 0; // indeks polja var image = new Array(); // Seznam slik, prirejene vrednosti image[0] = vrednost_zdravje_slike; image[1] = vrednost_ljubezen_slike; image[2] = vrednost_druzina_slike; image[3] = vrednost_finance_slike; image[4] = vrednost_druzabnost_slike; image[5] = vrednost_storilnost_slike; image[6] = vrednost_ustvarjalnost_slike; image[7] = vrednost_rekreacija_slike; image[8] = vrednost_spanec_slike; image[9] = vrednost_duhovnost_slike; var k = image.length-1; // število slik - 1 = 9 var caption = new Array(); // Seznam teksta, prirejene vrednosti caption[0] = vrednost_zdravje; caption[1] = vrednost_ljubezen; caption[2] = vrednost_druzina; caption[3] = vrednost_finance; caption[4] = vrednost_druzabnost; caption[5] = vrednost_storilnost; caption[6] = vrednost_ustvarjalnost; caption[7] = vrednost_rekreacija; caption[8] = vrednost_spanec; caption[9] = vrednost_duhovnost; function swapImage(direction){ var el = document.getElementById("tekst_animacija"); el.innerHTML=caption[i]; var slika = document.getElementById("slike_animacija"); slika.src = image[i]; if(i < k ) { i++;} // ko je index polja manjši od (število slik - 1) = 9 else { i = 0; } // postavi zopet na začetek, prvo polje setTimeout("swapImage()",3000); // odmor 3 sekunde // dodatna koda za naprej in nazaj if (direction == 'next' && i <=8){ i++; return i; } if (direction == 'back' && i >=1){ i--; return i; } // konec dodatne kode za naprej in nazaj } function addLoadEvent(func) { var oldonload = window.onload; // onload event occurs when an object has been loaded if (typeof window.onload != 'function') { // typeof operator: vrne niz tipa neocenjenega operanda window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } // konec else ;} // konec window.onload = function() } // konec addLoadEvent(func) addLoadEvent(function() { // izvršitev funkcije addLoadEvent() swapImage(); }); // Konec Slideshow
HTML:
<div id ="tekst_animacija">.....</div> ....... <div> <img name="slide" id="slike_animacija" alt ="slike za animacijo" height="220" width="240"/> <input type="button" value="<" onclick="swapImage('back')"> <input type="button" value=">" onclick="swapImage('next')"> </div>
Trinitron ::
Napako imaš v tem, da ti swapImage() v vsakem primeru premakne sliko najprej, šele nato pa preverjaš, ali morda obstaja parameter "direction".
Namig za popravek - zbriši vse svoje vrstice od 53 do 61, nato pa zamenjaj vrstice:
z vrsticami
hkrati pa moraš ob ročnem premiku še pobrisati prejšnji Timeout z "clearTimeout", sicer ob ročnem premiku sprožiš še eno "nit" avtomatskega premikaja, učinek pa je potem prepolovljen čas, o katerem govoriš.
Namig za popravek - zbriši vse svoje vrstice od 53 do 61, nato pa zamenjaj vrstice:
if(i < k ) { i++;} // ko je index polja manjši od (število slik - 1) = 9 else { i = 0; } // postavi zopet na začetek, prvo polje
z vrsticami
if(direction=='next') { i = (i < k ? i+1 : 0);} // rocni pomik naprej if(direction=='back') { i = (i > 0 ? i-1 : k - 1);} // rocni pomik nazaj else { i = (i < k ? i+1 : 0);} // avtomatski premik
hkrati pa moraš ob ročnem premiku še pobrisati prejšnji Timeout z "clearTimeout", sicer ob ročnem premiku sprožiš še eno "nit" avtomatskega premikaja, učinek pa je potem prepolovljen čas, o katerem govoriš.
Zgodovina sprememb…
- spremenil: Trinitron ()
kornilov ::
Hvala za pomoč. A koda se ni odzivala po mojih željah. Animacija se je zagnala samo en cikel, potem pa se je ustavila. Vrednosti k-jev je bilo potrebno tudi nekoliko popravljati.
Vrnil sem se k svoji "indijanski" kodi , sedaj se odziva tako kot sem si zamislil, takoj preskoči naprej in nazaj, vendar se intervali prikazovanja krajšajo z vsakim klikom naprej ali nazaj.
javascript:
HTML:
Vrnil sem se k svoji "indijanski" kodi , sedaj se odziva tako kot sem si zamislil, takoj preskoči naprej in nazaj, vendar se intervali prikazovanja krajšajo z vsakim klikom naprej ali nazaj.
javascript:
function swapImage(direction){ // dodatna koda za naprej in nazaj if ((direction == 'next') && (i <=8)){ setTimeout("swapImage()",0); i; return i; } if ((direction == 'back') && (i >=1)){ setTimeout("swapImage()",0); i=i-2; if (i < 1) {i=0;} return i; } clearTimeout(setTimeout("swapImage()",0)); // konec dodatne kode za naprej in nazaj var el = document.getElementById("tekst_animacija"); el.innerHTML=caption[i]; var slika = document.getElementById("slike_animacija"); slika.src = image[i]; if(i < k ) {i++;} // ko je index polja manjši od (število slik - 1) = 9 else {i = 0;} // postavi zopet na začetek, prvo polje setTimeout("swapImage()",3000); // odmor 3 sekunde clearTimeout(setTimeout("swapImage()",3000)); } function addLoadEvent(func) { var oldonload = window.onload; // onload event occurs when an object has been loaded if (typeof window.onload != 'function') { // typeof operator: vrne niz tipa neocenjenega operanda window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } // konec else ;} // konec window.onload = function() } // konec addLoadEvent(func) addLoadEvent(function() { // izvršitev funkcije addLoadEvent() swapImage(); }); // Konec Slideshow
HTML:
<div id ="tekst_animacija">.....</div> ....... <div> <img name="slide" id="slike_animacija" alt ="slike za animacijo" height="220" width="240"/> <input type="button" value="<" onclick="swapImage('back')"> <input type="button" value=">" onclick="swapImage('next')"> </div>
Zgodovina sprememb…
- spremenilo: kornilov ()
kornilov ::
Takole sem uredil. Slider se začne izvajati, ko se stran naloži, prikazuje 3 sekunde; tekst in sliko. Imam dva gumb ali bolje sličici, za naprej in nazaj . Ko slider, zaključi cikel, ga s sličico "naprej" znova zaženem. Slider se obnaša bolje ali bolj praktično kot mnogi drugi enostavni, ki sem jih našel na spletu.
Ima samo rahlo hibo, če na zadnji poziciji [9] kliknem nazaj, skoči za dva koraka nazaj [7] in ne za enega [8]. Če se komu da malo pogledati? Ni pa nujno.
javascript:
HTML:
Če bo kdo uporabil kodo, vrednost, ki se skriva npr. v image[0] je npr. src='slike/ogenj1.png'
Ima samo rahlo hibo, če na zadnji poziciji [9] kliknem nazaj, skoči za dva koraka nazaj [7] in ne za enega [8]. Če se komu da malo pogledati? Ni pa nujno.
javascript:
var i = 0; // indeks polja var image = new Array(); // Seznam slik, prirejene vrednosti image[0] = vrednost_zdravje_slike; image[1] = vrednost_ljubezen_slike; image[2] = vrednost_druzina_slike; image[3] = vrednost_finance_slike; image[4] = vrednost_druzabnost_slike; image[5] = vrednost_storilnost_slike; image[6] = vrednost_ustvarjalnost_slike; image[7] = vrednost_rekreacija_slike; image[8] = vrednost_spanec_slike; image[9] = vrednost_duhovnost_slike; var k = image.length-1; // število slik - 1 = 9 var caption = new Array(); // Seznam teksta, prirejene vrednosti caption[0] = vrednost_zdravje; caption[1] = vrednost_ljubezen; caption[2] = vrednost_druzina; caption[3] = vrednost_finance; caption[4] = vrednost_druzabnost; caption[5] = vrednost_storilnost; caption[6] = vrednost_ustvarjalnost; caption[7] = vrednost_rekreacija; caption[8] = vrednost_spanec; caption[9] = vrednost_duhovnost; function next(){ var el = document.getElementById("tekst_animacija"); el.innerHTML=caption[i]; var img= document.getElementById("slike_animacija"); img.src= image[i]; if(i < k ) { i++;} // Naprej, zažene tudi animacijo, ko se ta izpelje else { i = 0; } cajt; } function prev(){ i = i - 2; // Prvi klik za korak nazaj, vsak nasledjni klik za dva koraka nazaj if ((i > 0) && (i < 9)) {i;} else if (i < 1) { i = 0;} // Nazaj za 0. indeks else if (i > 8) {i= i + 1;} // Nazaj za zadnji 9. indeks var el = document.getElementById("tekst_animacija"); el.innerHTML=caption[i]; var img= document.getElementById("slike_animacija"); img.src= image[i]; cajt; i++; } function swapImage(){ var el = document.getElementById("tekst_animacija"); el.innerHTML=caption[i]; var img= document.getElementById("slike_animacija"); img.src= image[i]; i++; if (i > 9) {i = 9;} // indeks večji od 9; animacija se ustavi var cajt = setTimeout("swapImage()",3000); // Prikaz za 3 sekunde } function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { //onload: used to execute a script once a web page has completely loaded all content if (oldonload) { oldonload(); } func(); } ;} } addLoadEvent(function() { swapImage(); });
HTML:
<div id ="tekst_animacija">........</div> ................. <div> <img name="slike_animacija" id="slike_animacija" alt ="slike za animacijo" height="220" width="240"/> <img onclick="prev()" title="Nazaj" alt="Nazaj" width="40" height="40" src="slike/odklop_dve.gif"> <img onclick="next()" title="Naprej" alt="Naprej" width="40" height="40" src="slike/odklop_dve.gif"> </div>
Če bo kdo uporabil kodo, vrednost, ki se skriva npr. v image[0] je npr. src='slike/ogenj1.png'
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Enostaven JS noče delatiOddelek: Izdelava spletišč | 737 (643) | techfreak :) |
» | JavaScriptOddelek: Izdelava spletišč | 1443 (1288) | Gandalfar |
» | auto submit forumOddelek: Izdelava spletišč | 1041 (988) | Road Runner |
» | Javascript in phpOddelek: Izdelava spletišč | 1948 (1637) | rokpok |
» | Kako se tole naredi?Oddelek: Izdelava spletišč | 1495 (1195) | njok |