div-Tag Problem
Frank Schüler
- javascript
0 wahsaga0 Avalon0 Frank Schüler0 Avalon0 Frank Schüler0 wahsaga0 Frank Schüler0 wahsaga
0 janick0 Frank Schüler0 Avalon
Ein Hallo an alle
Ich habe ein Javascript das ein Scrollmenü erzeugt. Im IE funktioniert das auch alles einwandfrei. Nur im Mozilla Firefox hat das Script ein Problem mit dem div-Tag im Menü. Unter < http://www.codertools.de/Test/index.htm> könnt Ihr ein vereinfachtes Beispiel vom Menü ansehen. Wenn ich den div-Bereich rausnehme funktioniert das Menü auch im Firefox. Den div-Bereich benötige ich aber. Hat jemand eine Idee, woran das liegen könnte bzw. wie kann ich dieses Problem im Script abstellen.
MFG Frank
hi,
Hat jemand eine Idee, woran das liegen könnte bzw. wie kann ich dieses Problem im Script abstellen.
ohne mir das genauer anzusehen, würde ich vermuten, dass beim berühren des inneren, gelben divs das onmouseout-event des äußeren divs feuert.
du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).
gruß,
wahsaga
du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).
Stimmt, und das geht so:
<div id="id" onmouseout="if (document.all) {
if (!this.contains(event.toElement)) changeMenu('');}
else if (document.getElementById) {
if (!containsNN6(this, event.relatedTarget)) changeMenu('');}">
mit
function containsNN6 (container, containee)
{
var isParent = false;
do {
if ((isParent = container == containee))
break;
containee = containee.parentNode;
}
while (containee != null);
return isParent;
}
Gruß
Avalon
du müsstest also dafür sorgen, dass nicht sofort beim onmouseout auf dem äußeren div das ausfahren gestoppt und das wieder-einfahren gestartet wird - sondern erst noch prüfen, ob sich der cursor dabei _nicht_ über dem inneren div befindet (was _dessen_ onmouseover auslösen dürfte).
Hi
Danke für Deine Antwort. Ich habe mal Deinen Code eingebaut. Geht dennoch nicht. Fehlt da nicht noch eine Function "changeMenu". Ich habe Leider auch nicht soviel Ahnung von Javascript.
MFG Frank
Danke für Deine Antwort. Ich habe mal Deinen Code eingebaut. Geht dennoch nicht. Fehlt da nicht noch eine Function "changeMenu". Ich habe Leider auch nicht soviel Ahnung von Javascript.
Stimmt! An die Stelle kommt die Funktion, die bei Dir durch den onmouseout event aufgerufen wird.
Gruß
Avalon
Stimmt! An die Stelle kommt die Funktion, die bei Dir durch den onmouseout event aufgerufen wird.
Hallo Avalon
Ich habe nun verschiedene Sachen ausprobiert, aber es geht irgentwie immer noch nicht. Jetzt scrollt zwar das Menü raus, aber nicht mehr zurück. *total verzweifelt* Könntest Du mir bitte den Code des Menüs komplett hier posten. Ich bekomme das einfach nicht gebacken.
MFG Frank
hi,
Könntest Du mir bitte den Code des Menüs komplett hier posten.
nein.
SELF heißt selber machen.
wenn du javascript noch nicht hinreichend gut beherrschst - dann setze es nicht ein, und lerne es erst mal.
gruß,
wahsaga
wenn du javascript noch nicht hinreichend gut beherrschst - dann setze es nicht ein, und lerne es erst mal.
Hallo wahsaga
Ok, Punkt für Dich. Aber dann würde ich hier ja nicht fragen. Der Sinn eines Forums ist es doch, anderen zu helfen.
MFG Frank
hi,
Der Sinn eines Forums ist es doch, anderen zu helfen.
ja, aber nicht mit "komplettem code", so wie du ihn haben wolltest - sondern mit hilfe zur selbsthilfe.
gruß,
wahsaga
wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein
wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein
Hallo janic
Im eigentlichen Menü, ist der Rand = 0, nur im diesem Beispiel habe ich einen Rand hinzugefügt. Funktioniert dennoch nicht. Aber trotzdem Danke für Deine Hilfe.
MFG Frank
wenn du denn border von dem div-bereich wegmachst dürfte es auch mit sämtlichen mozillabrowsern und netscape gehen.
bei denen gehört der rand nicht(!) zu div dazu soweit ich weiss
ich bin mir nicht ganz sicher, aber es dürfte eienen versuch wert sein
Daran liegt es nicht. Wahsaga hatte schon recht, der innere div deckt den äußeren ab und so wird für den äußeren ein onmouseout ausgelöst.
Gruß
Avalon