mausposition bestimmen per onclick
davidp
- javascript
Hi,
ich steh wieder mal auf der leitung... ich krieg es einfach nicht hin, wenn auf der mauszeiger auf einem bild ist, dass eine infobox angezeigt wird. so gehts ja nicht:
function info(ereignis)
{
if (!ereignis)
ereignis = window.event;
txt="info-text";
document.getElementById('inf_box').innerHTML=txt;
document.getElementById('inf_box').style.display="block";
document.getElementById('inf_box').style.left=ereignis.pageX+"px";
document.getElementById('inf_box').style.top=ereignis.pageY+"px";
document.getElementById('inf_box').style.width=(txt.length*6)+"px";
}
<img id="bild" src="..." onmouseover="info()">
und mit document.getElementById('bild').onmouseover=info;
auch ned. wie mach ich das?
danke für eure hilfe,
davidp
ich krieg es einfach nicht hin, wenn auf der mauszeiger auf einem bild ist, dass eine infobox angezeigt wird.
Es stimmt soweit alles, nur fehlt (zumindest in dem Code, den du gezeigt hast), das noch nötige position:absolute für das Element, das an der Mausposition positioniert werden soll.
document.getElementById('inf_box').innerHTML=txt;
document.getElementById('inf_box').style.display="block";
document.getElementById('inf_box').style.left=ereignis.pageX+"px";
document.getElementById('inf_box').style.top=ereignis.pageY+"px";
document.getElementById('inf_box').style.width=(txt.length*6)+"px";
Du brauchst den document.getElementById-Sermon nicht ständig wiederholen, sondern kannst das Elementobjekt in einer Variable zwischenspeichern und fortan die Variable ansprechen.
var infobox = document.getElementById('inf_box');
infobox.innerHTML = "..."; usw.
Außerdem kennt der IE die Event-Eigenschaften pageX und pageY nicht, die Mausposition relativ zum Dokument fragst du browserübergreifend so ab: http://www.quirksmode.org/js/events_properties.html#link8
<img id="bild" src="..." onmouseover="info()">
und mit
document.getElementById('bild').onmouseover=info;
auch ned.
Die Funktion wird sicherlich aufgerufen. Das kannst du herauskriegen, indem du in sie eine Debug-Ausgabe setzt, z.B. alert("Hallo, Mouseover-Ereignis ist passiert!");
Mathias
Hi,»» Hi,
ich steh wieder mal auf der leitung... ich krieg es einfach nicht hin, wenn auf der mauszeiger auf einem bild ist, dass eine infobox angezeigt wird.
javascriptechnisch bist Du bei Mathias schon in den besten Händen, dennoch stellt sich die Frage, wozu js?
Wenn das title-Attribut nicht langt kann man sowas auch mit css lösen: imagetooltip
Gruesse, Joachim