Mausrad-Scrolling in Javscript
Fry
- javascript
Hallo liebe Experten,
folgendes Situation: ich habe eine Tooltip-Funktion, mit der ich bei Bildern onmouseover Tooltip-Texte einblenden kann. Das ganze sieht so aus und funktioniert gut:
var ttObj, cntObj, gapx, gapy;
function showTooltip(text,element,object)
{
if(element && object)
{
ttObj=object;
cntObj = document.getElementById(element);
if(cntObj && ttObj)
{
ttObj.onmousemove=posTooltip;
window.onscroll=posTooltip;
cntObj.innerHTML=text;
cntObj.style.display="block";
cntObj.style.zIndex="1001";
}
}
}
function posTooltip(e)
{
x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
if (cntObj && ttObj)
{
cntObj.style.left = (x + 13) + "px";
cntObj.style.top = (y + 15) + "px";
ttObj.onmouseout=hideTooltip;
}
}
function hideTooltip()
{
if(cntObj)
cntObj.style.display="none";
}
Die Position des Tooltips wird also beim ändern der Mausposition mit geändert. Nur wenn ich das Mausrad verwende, bleibt der Text stehen und zieht erst nach, wenn der Mauszeiger durch bewegen der Maus verändert wird, so dass das onmousemove ausgelöst wird. Ich hätte nun gerne, dass sich die Position auch beim Mausradscrollen mitbewegt.
Es gibt ja ein Skript, das einen Handler fürs Mausradscrolling hinzufügt, über
if (window.addEventListener)
window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
Nur schaffe ich es nicht es so zu implementieren, dass unabhängig vom Delta der Mausradbewegung die Position des Tooltips aktualisiert wird. Anders formuliert: wenn man mit dem Mausrad scrollt (Geschwindigkeit egal) soll sich der Tooltip mit dem Mauszeiger mitbewegen. Kann mir da jemand helfen? Ich steh gerade ziemlich auf dem Schlauch.
Vielen Dank schonmal
Hi there,
if (window.addEventListener)
window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
Davon rate ich ab. Das onmousewheel-event "versteht" nur der Internet Explorer...
Davon rate ich ab. Das onmousewheel-event "versteht" nur der Internet Explorer...
Gibts eine Alternative die überall funktioniert?
Hallo,
if (window.addEventListener)
window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;Davon rate ich ab. Das onmousewheel-event "versteht" nur der Internet Explorer...
Erstmal stimmt das nicht, da Opera und Safari ihn auch kennen.
Dann verstehe ich den Sinn deiner Aussage nicht, weil gerade für die Browser, die den mousewheel-Event nicht kennen, eine Überwachung des DOMMouseScroll-Events vorgenommen wird.
Ich denke mal, Fry kennt http://adomas.org/javascript-mouse-wheel/? Ich würde schauen, wie sich scrollTop verändert und und den Tooltip entsprechend verschieben, sodass er relativ zum Viewport an derselben Stelle bleibt.
Mathias