Script zum Buttonzustandswechsel!
ShockWaveRideR
- javascript
Hoi liebes Forum!
Ich hab da so ein script zum Buttonzustandswechsel, nur versteh ichs net ganz! Ich habe keine Fehler in meiner js-script-console und doch wird einfach überhaupt nix ausgeführt!
Wär fein wenn ihr euch das mal ansehn könntet und mir erklärn was ich noch falsch mache! Also hier das script, der Aufruf und einer der Buttons:
var et = '.gif';
var folder = 'http://nic-ultra/button/';
var over = '_on';
var stay = '_stay';
var down = '_down';
var _click = null;
var old_onload = window.onload;
var old_onresize = window.onresize;
window.onresize = on_resize;
window.onload = start_mouse_over;
function start_mouse_over(doc) {
if(!doc) doc = this.document;
if(!doc.images) return;
for(var i = 0; i < doc.images.length; i++) {
if( doc.images[i].name.indexOf('button') == 0)
addEventsToImage(doc.images[i]);
}
if(old_onload) old_onload();
}
function addEventsToImage(img) {
img.onmouseover = on_mouse_over;
img.onmouseout = on_mouse_out;
img.onmousedown = on_mouse_down;
img.onclick = on_click;
img.stay = new Image();
img.stay.img = img;
img.stay.onerror = function() { this.img.onclick = null;}
img.stay.src = folder + img.name + stay + et;
img.stay = new Image();
img.stay.img = img;
img.stay.onerror = function() { this.img.onmouseover = null;}
img.stay.src = folder + img.name + over + et;
img.stay = new Image();
img.stay.img = img;
img.stay.onerror = function() { this.img.onclick = null;}
img.stay.src = folder + img.name + down + et;
img.out = img.src;
if(window.name ==img.name) img.onclick();
}
function on_mouse_down()
{
if(_click_ == this) return false;
this.src = this.down.src;
return true;
}
function on_mouse_over()
{
if(_click_ == this) return false;
this.src = this.over.src;
return true;
}
function on_mouse_out()
{
if(_click_ == this) return false;
this.src = this.out;
return true;
}
function on_click()
{
if(_click_ == this) return false;
this.src = this.stay.src;
if(_click_) _click_.src = _click_.out;
_click_ = this;
window.name = this.name;
return true;
}
function on_resize()
{
if(_click_) _click_.src = _click_.stay.src;
if(old_onresize) old_onresize();
}
<script type="text/javascript" src="mouse_over.js"></script>
</head>
<body>
<table>
<tr>
<td width="100" align="center"><a href="willk_ns.htm" target="links">
<img src="b_h.gif" border="0" name="button0">Hauptseite</a></td>
Danke für die Hilfe! mfg shockwaverider
Hi,
Ich hab da so ein script zum Buttonzustandswechsel, nur versteh ichs net ganz!
Wär fein wenn ihr euch das mal ansehn könntet und mir erklärn was ich noch falsch mache!
Du verwendest kiloweise Javascript, das du nicht verstehst an einer Stelle, an der ein wenig CSS den gleichen Effekt erzielt.
http://aktuell.de.selfhtml.org/artikel/css/mouseover/
Grüße,
Roland
Hoi liebes Forum!
Ich hab da so ein script zum Buttonzustandswechsel, nur versteh ichs net ganz! Ich habe keine Fehler in meiner js-script-console und doch wird einfach überhaupt nix ausgeführt!
Dann bindest du mein Skript falsch ein.
Wär fein wenn ihr euch das mal ansehn könntet und mir erklärn was ich noch falsch mache! Also hier das script, der Aufruf und einer der Buttons:
var et = '.gif';
var folder = 'http://nic-ultra/button/';var over = '_on';
var stay = '_stay';
var down = '_down';
<body>
<table>
<tr>
<td width="100" align="center"><a href="willk_ns.htm" target="links">
<img src="b_h.gif" border="0" name="button0">Hauptseite</a></td>
Diese drei Datein können je nach gewünschten Zustand auf dem Server vorhanden sein:
b_h.gif -> onmouseout
http://nic-ultra/button/button0_on.gif -> onmouseover
http://nic-ultra/button/button0_stay.gif -> nach einem Klick
http://nic-ultra/button/button0_down.gif -> bei einem mousedown
Struppi.
Moin Struppi!
Diese Dateien sind so bei mir gespeichert und dennoch geht es nicht!
b_h.gif -> onmouseout
http://nic-ultra/button/button0_on.gif -> onmouseover
http://nic-ultra/button/button0_stay.gif -> nach einem Klick
http://nic-ultra/button/button0_down.gif -> bei einem mousedown
Was meinst mit ich binde dein script falsch ein? so ruf ich das auf im html-code:
<script type="text/javascript" src="mouse_over.js"></script>
Muss ich da noch was anders machen, oder wie oder was?????
Wie gesagt macht mein mozilla nix ausser zur richtigen Datei zu linken! Welche Methoden hab ich noch um herrauszufinden warum das noch nicht funtzt?
Danke mfg shockwaverider
hi
Muss ich da noch was anders machen, oder wie oder was?????
Wie gesagt macht mein mozilla nix ausser zur richtigen Datei zu linken! Welche Methoden hab ich noch um herrauszufinden warum das noch nicht funtzt?
javascript lernen wäre ein lobenswerter ansatz.
so long
ole
(8-)>
Moin Struppi!
Diese Dateien sind so bei mir gespeichert und dennoch geht es nicht!
b_h.gif -> onmouseout
http://nic-ultra/button/button0_on.gif -> onmouseover
http://nic-ultra/button/button0_stay.gif -> nach einem Klick
http://nic-ultra/button/button0_down.gif -> bei einem mousedown
Bist du sicher?
was ist denn das für eine Domain?
mach das doch mal weg, wenn du alle Dateien im gleichen Verzeichniss liegen hast kann die Variabel folder auch leer sein (folder = "")
Was meinst mit ich binde dein script falsch ein? so ruf ich das auf im html-code:
das Skript ist ja so genial dass es von alleine läuft ;-)
<script type="text/javascript" src="mouse_over.js"></script>
Muss ich da noch was anders machen, oder wie oder was?????
Nö.
Struppi.
Moin Struppi!
Dieses Verzeichnis nic-ultra ist die Intra-net ablage meiner Seite! Bevor ich das ins Netz hochlade muss ich immer das nic-ultra in www.o-a-i.de ändern damit die root stimmt!
ich hab jetzt grad noch die bilder in das gleiche Verzeichnis umkopiert und die var folder = ""; gesetzt, geht aber auch nicht! Irgentwas gravierendes müssen wir übersehn haben!
Müssen alle buttons der html-datei vieleicht nach deinem schema definiert sein? Ich hab nämlich bisher bloß diesen einen zum test!?!
Seh ich das richtig das wenn deine function funtzt im html-code die Events automatisch gesetzt werden? (passiert zumindest bei mir nicht!)
Du hast in deinem letzten posting folder = "" geschrieben! aus deinem code auf deiner seite hag ich das aber eigentlich aber so abgeschrieben: folder = ''! Wie müssen die vars richtig aussehn?
danke mfg shockwaverider
Ich hab es mal ausprobiert: http://home.arcor.de/struebig/js/test/test mouseover.htm funktioniert einwandfrei. evtl. liergt es daran, dass du nur einen Button hast.
Da nach einem klick event der over ja nicht mehr ausgeführt werden soll.
Seh ich das richtig das wenn deine function funtzt im html-code die Events automatisch gesetzt werden? (passiert zumindest bei mir nicht!)
JA.
Du hast in deinem letzten posting folder = "" geschrieben! aus deinem code auf deiner seite hag ich das aber eigentlich aber so abgeschrieben: folder = ''! Wie müssen die vars richtig aussehn?
Egal. In Javascript ist beides das gleiche.
Struppi.
Hoi again!
Ich war grad auch bei deinem test! Was soll denn da passiern? Also bei mir passiert nix ausser das der browser(moz1.2b) da son linkrand drummacht wenn ich draufclicke und der text kurz rot wird!
Kann mein Moz da vieleicht irgentwat nicht?
danke mfg shockwaverider
Hoi again!
Ich war grad auch bei deinem test! Was soll denn da passiern? Also bei mir passiert nix ausser das der browser(moz1.2b) da son linkrand drummacht wenn ich draufclicke und der text kurz rot wird!
Kann mein Moz da vieleicht irgentwat nicht?
Ist vielleicht Javascript ausgeschaltet?
Struppi.
mahlzeit!
Nöö, javascript ist auf jeden fall eingeschaltet! Ich hab ja sogar eine Schaltug, die nur dann automatisch weiterschalten kann wenn javascript aktiv ist! Ich hab jetzt grad nochmal nachgesehn, da gibs ja mehrere Einstellungsmöglichkeiten! nur mail & newsgroups sind nicht an bei mir hier! Wenn ich gepostet hab werd ich das noch anschalten und mal testen!
Das Script von mir ist ja auch an manchen stellen von meiner Intranet Seite noch aktiv und funtzt soweit im moz 1.2b!
Kann mir auch nicht vorstelln das die beiden verschiedenen Datein sich überschneiden, das sind zwei funktions ketten die in zwei verschiedenen .js dateien liegen!
Ich bau jetzt mal den kompletten html code um auf der test Datei, vieleicht gehts dann ja!
Danke mfg shockwaverider
Ich hab mittlerweile mal einen Test mit Netscap 6 gemacht und es funktioniert auch nicht. liegt wohl daran, das diese Zeile nicht ausgeführt wird:
window.onload = start_mouse_over;
Schreib diese zeile in den HTML Code:
<body onload="start_mouse_over();">
dann geht's, sorry für die Mühe ;-)
Struppi.