Hallooo,
habe mir vor kurzem Webmatzes javascript für Tooltips runtergeladen und auf meiner Seite eingebaut.
http://www.webmatze.de/webdesign/javascript/tooltips.htm
Hat im Firefox (1.5) auch wunderbar geklappt aber der IE muckt rum wie ich später gesehen habe. Und zwar ist das probleme, dass der Scrollwert (scrollTop) immer 0 ist. Habe es explizit abgefragt beim debuggen
function updateWMTT(e) {
[...]
y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
[...]
}
Dadurch werden die Tooltips an falscher Position dargestellt sobald ich srolle.
Das eigentlich lustige (oder traurige) ist, dass es bei den Beispielen auf der Webmatzeseite wunderbar funktioniert. Da scrolle ich ja auch runter und sie werden korrekt dargestellt, auch im IE. Das heisst der Fehler muss irgendwo anders liegen aber wo? Werden auch keine Javascriptfehler angezeigt. Habe die funktionen mit Copy und Pase rüebergerbacht
Meine Seite ist bissel größer da die ganzen Tooltips auch etwas größere tables sind aber habe schon alles ausprobiert.
Die FUnktionen im head definiert und auch unter den Divs für die Tooltips. Habe die Divs ans ende der Seite gesetzt und direkt hinter den body Tag. Hat alles nichts geholfen.
Habe im Moment keien Idee mehr woran es liegen könnte, dass
document.body.scrollTop
immer 0 zurueck gibt
also erstma hats vlt damit zu tun, dass du die HINTER den body tag gesetzt hast....die müssen IN den body rein, ist normales html.
des weiteren ist das ganze ne if abfrage :
y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
==
if (document.all) {
y = window.event.y + document.body.scrollTop
else{
y = : e.pageY;
}
also entweder wenn es document.all gibt bzw. zugegriffen werden kann, wird die höhe aus window.event.y geholt und dann scrollTop adiert.
wenn es nicht verfügbar ist wird über das argument des eventes e die höhe bestimmt
zeig mal bitte deinen quelltext, dann können wir dir sagen, was du falsch gemacht hast
danke für die hilfe, du hast mich falsch verstanden bzw ich habe mich undeutlich ausgedrückt
mit HINTER dem body tag meinte ich direkt hinter dem öffnenden body tag. Ist also schon im Body drin. Den Tip hatte ich aus der Suche hier, hat aber nichts g ebrahct
Mir ist darüber hinaus klar dass es eine abfrage ist, die nötig ist da die position des Divs in den unterschiedlichen Browsern verschiden berechnet werden muss.
mit der document.all Abfrage wird einfach geprueft ob der IE der Browser ist, da das all Objekt ein typisches IE element ist. Da es bei mir im Firefox ja geht bin ich auf die Abfrage selbst gar nicht mehr weiter eingegangen.
Es geht wirklich nur um den Teil mit document.body.scrollTop und wahrscheinlich auch scrollLeft was ich nicht getestet habe da ich auf der x-koordinate net scrolle.
Dieser Wert ist immer 0. Dadurch wird der Tooltip im IE richtig angezeigt wenn ich nicht scrolle. Sobald ich aber nach unten scrolle, sind die Tooltips logischerweise nach oben versetzt
Übrigens habe ich meien Seite durch den html validator von W3C gejagt und ist wunderschönes XHTML 1.0.
Ist irgendwie alles komisch. Wahrscheinlich n ganz peinlicher Fehler drin den ich einfach nicht mehr sehe wie das so oft der Fall ist
Habe mal eben ein kurzes beispiel hochgeladen. Ist jetzt ganz einfaches html. Habe nur einen Link auf der seite bei dem ein Tooltip erscheint wenn onmousover ausgelöst wird. durch viele br-tags habe ich ihn weiter nach unten gesetzts, damit man scrollen kann. Im IE zerschießt mir das den Tooltip sobald ich ein bissel nach unten gehe, sprich er ist nicht mehr bei der Mouse sondern weiter oben versetzt
Kann man sich hier anschauen
tooltip
Ich habe mal ein wenig nachgeforscht. So wie es aussieht, verwendest du für deine Seite einen DOCTYPE, der den IE 6 in den "standards compliant mode" setzt. Dadurch werden ein paar Dinge intern vom IE geändert.
So muß man jetzt den werden scrollTop so auslesen:
document.documentElement.scrollTop
anstatt über
document.body.scollTop.
Dadurch funktioniert das Script dann im IE 6 nicht mehr richtig.
Du hast nun die Möglichkeit einen anderen DOCTYPE zu verwenden, oder besser eine abgeänderte Variante des Scripts:
Damit sollte es dann auch im IE 6 richtig funktionieren.
Ok du bist offiziell mein Held und ich würde dich heiraten wenn ich könnte!!!!
Vielen Dank für die grandiose Hilfe, besonders da es so schnell ging. Hätte ich nicht gedacht. (Klappt übrigens super falls ich es noch nicht erwähnt habe :) )
Gruß
Hallo Webmatze!
Vielen Dank für deine abgeänderte Version vom 12. Dezember 2005! Ich hatte auch prositionierungsprobleme, welche durch diese Version behoben werden konnten! Super TOOLTIP! Tausend Dank an den Author!
MfG
It looks like you're new here. If you want to get involved, click one of these buttons!