HighDots Forums  

Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #11  
Old   
Frank Glück
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-14-2007 , 01:39 PM






"Georg Maaß" <georg (AT) bioshop (DOT) de> schrieb
Quote:
Verschiebe es um ein Pixel nach innen, so daß eine Lücke zwischen
Fenster-Rand und Menü entsteht. Fülle die Lücke optisch nötigenfalls mit
dem Hintergrundbild des Seite.
Naja, aber was soll das bringen? I.d.R. dürfte dann doch wieder das Problem
auftreten, dass die Maus meist zu schnell über diese einen Pixel "breite"
Linie geführt wird ...

Quote:
Übrigens hat der IE aber nach wie vor Probleme mit "switch(e.target)".
Hatte mich vorhin nur vertippt.
was ist mit e.relatedTarget bzw. e.srcElement?
var t = e.target || e.relatedTarget || e.srcElement;
switch(t)
Löst immerhin keinen Fehler mehr aus. Aber während FF wenigstens auf
case self.document.body:
anspringt (was wegen der beschriebenen Pixel-Problematik nicht optimal ist),
reagiert IE auf keine der Bedingungen
case self:
case self.document:
case self.document.body:
Also selbst dann nicht, wenn die Maus nicht über die Menue-Divs aus dem
Fenster geführt wird.




Reply With Quote
  #12  
Old   
Georg Maaß
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-14-2007 , 01:50 PM






Frank Glück wrote:
Quote:
Also selbst dann nicht, wenn die Maus nicht über die Menue-Divs aus dem
Fenster geführt wird.
Was meint er denn zu e.srcElement? Das müßte dem e.target von Mozilla
und Opera entsprechen.


Reply With Quote
  #13  
Old   
Frank Glück
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-14-2007 , 01:53 PM



Pardon, muss mich schon wieder korrigieren: Der IE war noch gar nicht soweit
vorgedrungen, da er schon auf
self.onmouseout = MausWeg;

komischerweise gar nicht reagiert.

Ich hab es jetzt erfolgreich mit
self.document.body.onmouseout = MausWeg;

probiert und nun hat er wieder Probleme mit der Zeile
var t = e.target || e.relatedTarget || e.srcElement;

Es ist zum Verzweifeln ...:-(



Reply With Quote
  #14  
Old   
Georg Maaß
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-14-2007 , 02:12 PM



Frank Glück wrote:
Quote:
Pardon, muss mich schon wieder korrigieren: Der IE war noch gar nicht soweit
vorgedrungen, da er schon auf
self.onmouseout = MausWeg;

komischerweise gar nicht reagiert.
Ich erinnere mich vage an graue Vorzeiten.

Quote:
Es ist zum Verzweifeln ...:-(
Events sind halt scheiße...


Reply With Quote
  #15  
Old   
horst lorenz
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-15-2007 , 03:48 AM




Georg Maaß schrieb:

Ist mal wieder Browser-spezifisch: bei Mozilla sind es die
Eigenschaften event.target und event.relatedTarget.

Beim IE heißen die Eigenschaften event.fromElement und
event.toElement. Gelegenlich reagiert der IE auch auf
event.srcElement...

Tschüß Horst.


Reply With Quote
  #16  
Old   
Frank Glück
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-17-2007 , 06:36 PM



"Georg Maaß" <georg (AT) bioshop (DOT) de> schrieb
Quote:
Für FF bzw. SM braucht er es auf jeden Fall am Fenster, weil sonst die
Events des Fensters flöten gehen. Für IE den document.body. Er wird also
wahrscheinlich die eigentliche Funktionalität in eine Funktion legen, die
er von beiden Event-Handlern aufruft. Die Filterung muß in den
Event-Handlern geschen.
Danke Euch beiden!

Die Lösung brachte:

if (document.all) var t = event.toElement;
else var t = e.relatedTarget;
switch(t) {
case null: {
[...]
}
default:
}

Denn wenn die Maus den Anzeigebereich des Browsers verlässt, melden sowohl
IE als auch MZ für Mouseout = "null".
Nun frage ich mich bloß noch, ob ich mit dieser document.all-Browserweiche
auch alle anderen Browser richtig erfasse ...(?)




Reply With Quote
  #17  
Old   
J. Strübig
 
Posts: n/a

Default Re: Slide-Menue bei MouseOut aus Anzeigebereich(!) einklappen - 01-19-2007 , 06:08 AM



Frank Glück schrieb:
Quote:
Die Lösung brachte:

if (document.all) var t = event.toElement;
else var t = e.relatedTarget;
Das ist nicht schön.
Einmal was hat document.all mit der ganzen Geschichte zu tun?
und diese var Deklaration nach dem if funktionieren zwar in JS, weil es
keine Variabeln kennt, die in einem Block lokal sind (in anderen
Programmiersprachen läuft sowas nicht, da t nur im if oder else Block
gültig ist.

Daher würde ich sowas empfehlen:

var t = event ? event.toElement : e.relatedTarget;


Quote:
Nun frage ich mich bloß noch, ob ich mit dieser document.all-Browserweiche
auch alle anderen Browser richtig erfasse ...(?)
Gute Frage.


Struppi.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.