Forum CDRinfo.pl

Forum CDRinfo.pl (https://forum.cdrinfo.pl/)
-   Off topic (https://forum.cdrinfo.pl/f5/)
-   -   Problemik z JavaScript'em (https://forum.cdrinfo.pl/f5/problemik-javascriptem-67213/)

IceManSpy 26.08.2006 16:45

Problemik z JavaScript'em
 
Witam


Mam mały problem z pewnym skryptem. Skrypt wygląda tak:
Kod:

<a href="http://www.pckurier.pl" onMouseOver='rollover.src="../grafika/pcq.gif"'
onMouseOut='rollover.src="../grafika/hand.gif"'>
<img src="../grafika/hand.gif" name="rollover" border="0"></a>

i pobrany jest stąd: http://webmaster.helion.pl/kurshtml/skrypt/rollover.htm

I teraz mój problem. Nie chcą mi przeskakiwać te obrazki po najechaniu myszy. Obrazki mam w folderze buttony i są to onas.gif (nie najechany) i onasc.gif (najechany).

Tak wygląda mój, niedziałający skrypt:
Kod:

<a href="onas.html"  onMouseOver='rollover.src="buttony/onasc.gif"'
onMouseOut='rollover.src="buttony/onas.gif"'>
<img src="buttony/onas.gif" name="rollover"></a>

Co jest w tym źle? Szukałem podobnych skryptów, ale nie wiem jak one się nazywają (szukałem jako rollover).:help:

joujoujou 26.08.2006 17:02

A mo***380;e "/buttony/onasc.gif" :hmm:

pablocoo 26.08.2006 17:33

@jou to nie to, bo obrazki nie 'przeskakuja', gdyby sciazka byla zla, nie wyswietlalyby sie wogole.
Zaraz zobacze jak to robi dreamweaver.

W head:
Kod:

<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

Link: w body:
Kod:

<a href="strona.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('nazwa_obiektu','','obrazek_mouseover.jpeg',1)"><img src="obrazek_normalny.jpeg" alt="opis_linka" name="nazwa_obiektu" width="71" height="25" border="0" id="nazwa_obiektu" /></a>
A jesli chcesz, zeby obrazki "onmouseover" byly ladowane razem ze strona, W body:
Kod:

<body onload="MM_preloadImages('obrazek_mouseover.jpeg','ew_nastepny.jpeg')">
Sprawdz :)

IceManSpy 26.08.2006 17:55

Wszystko fajnie, je***380;eli mam tylko jeden przycisk. Gdy dodam to do drugiego to wszystko nie dzia***322;a. Bo mam tabelk***281; w ka***380;dej kom***243;rce jest jeden przycisk, ale to nie powinno wp***322;ywa***263; na to?

I nie ma czego***347; prostszego?

joujoujou 26.08.2006 18:00

@Ice, spr***243;buj wpisa***263; bezwzgl***281;dne adresy obrazk***243;w w tym pierwszym skrypcie. :idea:

pablocoo 26.08.2006 18:20

Ilość załączników: 1
A co w tym skomplikowanego? Kod do head wklejasz tylko raz.
Definicje linka mozesz skrocic o dlugosc i szerokosc...
nazwe obiektu musisz nazywac inaczej dla kazdego obiektu rollover: r1, r2 lub cokolwiek.

W zalaczniku "strona" ;p z 2 obiektami (zrobiona wklejajac kod, ktory podalem do pustego dokumentu, zaby nie bylo :>)

@jou a sciezki relatywne dzialaja idealnie wpisane dokladnie tak, jak mial wpisane @icemanspy w pierwszym poscie ;)

REi 26.08.2006 19:30

Cytat:

Napisany przez IceManSpy
[...]

zle :P o ile opera jeszcze by ten skrypt przemielila to np FF bedzie zwracal blad skladni - dlaczego?
Na twoim miejscu obok name="rollover" dodal bym rowniez id="rollover"
Natomiast zamiast onMouseOver='rollover.src="buttony/onasc.gif"' powinno byc:
Kod:

onMouseOver='document.getElementById("rollover").src="buttony/onasc.gif"'
i podobnie w pozostalych przypadkach

IceManSpy 26.08.2006 21:00

Dzi***281;ki @pablocoo :piwo:

Tw***243;j skrypt dzia***322;a. Tylko szkoda ***380;e nie napisa***322;e***347;, ***380;e je***347;li chc***281; doda***263; nowy przycisk to musze zmienia***263; te numerki przy link itd. Ale jako***347; si***281; domy***347;li***322;em :)
Pewno przy moim trzeba by***322;o to samo, ale nie chce mi si***281; tego ju***380; sprawdza***263; ;)
Ale dzi***281;ki jeszcze raz.


Wszystkie czasy w strefie CET. Aktualna godzina: 11:39.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.