Autor | Zpráva | ||
---|---|---|---|
DZer Profil |
#1 · Zasláno: 25. 6. 2005, 09:18:53
mám malou navigační lištu kde jsou tři číslice(tvořené obrázky) které pomocí dhtm přepinají obsah stránky a potřebuju aby když na jednu číslici kliknu aby se zmněnil jeji obrázek na jiný ale zaroveň když už je zmněněný a kliknu na jnou číslici aby ta první čislice nabyla původního obrázku a tato se mněnila.
nejlepší přiklad je hned tady na této stránce přepínaní stránek s tématy ale je to v php a já potřebuju javascript |
||
Charlie Profil |
#2 · Zasláno: 25. 6. 2005, 10:56:30 · Upravil/a: Charlie
JavaScript:
function convert($cislice) { HTML: <img src="cislice1.gif" id="cislice1" onclick="convert("cislice1")" /> Na JavaScript jsem lama, takže si nejsem jistý funkčností. Taky se mi to zdá jako dost těžkopádné řešení. Update: K tomuto řešení jsou potřeba tři obrázky ve formátu "cisliceX.gif" a tři ve formátu "cisliceX_active.gif", které představují aktivní číslice. |
||
Fred Profil |
#3 · Zasláno: 25. 6. 2005, 13:01:33
Charlie Update nejspíš asi "cisliceX_hover.gif"
DZer Jestli máš těch obrázků na vyměňování hodně, můžeš to udělat čistěji, tak že oddělíš js od html. Jediné co budeš potřebovat navíc je někam dát id="jshelp" (můžeš ho pověsit klidně na body) a již zmíněné obrázky s příponou "_hover.gif". Script by pak mohl vypadat nějak takhle: <script type="text/javascript"> <!-- function hover(){ var div=document.getElementById('jshelp') var obr=div.getElementsByTagName('img'); for (var i=0;i<obr.length;i++) { var hover=obr[i].getAttribute('src'); hover=hover.replace(new RegExp(".gif","g"), "_hover.gif"); obr[i].setAttribute('rel',hover); obr[i].onmouseover=function(){ var vemsi=this.getAttribute('rel'); this.setAttribute('src',vemsi); } obr[i].onmouseout=function(){ var vemsi=this.getAttribute('rel'); vemsi=vemsi.replace(new RegExp("_hover.gif","g"), ".gif"); this.setAttribute('src',vemsi); }}} function addEvent(obj,evType,fn){ if(obj.addEventListener){obj.addEventListener(evType,fn,true);return true;} else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;} else{return false;} } addEvent(window, 'load',hover); //addEvent:thx http://www.scottandrew.com/weblog/articles/cbs-events //--> </script> <div id="jshelp"> <img src="cislice1.gif" /> <img src="cislice2.gif" /> <img src="cislice2.gif" /> </div> Bohužel je to nefunkční v parodii na prohlížeč Opera8 , funguje v nižších verzích Opery od verze 7.23, IE5+, Gecka od Firebirda přes K-meleon po Netscape a Firefox. Jenom ta Opera 8. Ale na to už jsem samozřejmě zvyklý. |
||
Fred Profil |
#4 · Zasláno: 25. 6. 2005, 13:39:25
Update: Tohle už funguje i v O8
<script type="text/javascript"> <!-- function hover(){ var div=document.getElementById('jshelp') var obr=div.getElementsByTagName('img'); for (var i=0;i<obr.length;i++) { obr[i].onmouseover=function(){ var hover=this.getAttribute('src'); hover=hover.replace(new RegExp(".gif","g"), "_hover.gif"); this.setAttribute('src',hover); } obr[i].onmouseout=function(){ var hover=this.getAttribute('src'); hover=hover.replace(new RegExp("_hover.gif","g"), ".gif"); this.setAttribute('src',hover); }}} function addEvent(obj,evType,fn){ if(obj.addEventListener){obj.addEventListener(evType,fn,true);return true;} else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;} else{return false;} } addEvent(window, 'load',hover); //addEvent:thx http://www.scottandrew.com/weblog/articles/cbs-events //--> </script> <div id="jshelp"> <img src="cislice1.gif" /> <img src="cislice2.gif" /> <img src="cislice2.gif" /> </div> |
||
DZer Profil |
#5 · Zasláno: 25. 6. 2005, 17:00:23
Diky,moc mi to pomohlo
|
||
DZer Profil |
#6 · Zasláno: 25. 6. 2005, 18:39:31
ale vyřešil sem to trošku jinak.
pro tři čísla je to docela ideální jelikož je to krátký princip je v tom že když kliknu na jedno číslo tak se samo změní na modrou barvu(která značí aktivní okno a ostatní přepne do šedý barvy a takle je to u všech.C1 jedna má na počátku už modrou barvu protože při načtení stránky je tam 1."podstránka" v kodu to vypada takle <img id="c1" src="tl/1b.gif" onclick="this.src='tl/1b.gif';document.getElementById('c2').src='tl/2g .gif';document.getElementById('c3').src='tl/3g.gif';" > (1b-blue , 1g-green) |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0