onMouseover Popup Verschiebung beim scrollen

fuDDel

Mitglied
Hi,
ich brauchte ein Script welches in einer TD ein Popup erzeugt, sóbald man mit der Maus darüber geht.
Dachte ich mir onMOuseover ist da wohl das Richtige.
So weit klar und ich bin dann auch hier fündig geworden.
Mein Problem ist es jetzt, das sobald man einen Horizontalen Scrollbalken hat und zur Seite scrollt sich die Popups von ihrem eigentlichem AnzeigeOrt entfernen.

Also das Feld <td>Text</td> verschiebt sich durch das scollen nach links.
Normalerweise ist das Popup genau darunter, dann aber nicht mehr sondern verschwindet weit nach links und manchmal sogar bis ausserhalb des angezeigten Bereiches.

Villeicht hat da jemand eine Lösung?!
Hier mal die Code Teile.

Der Teil im HEAD:
Code:
<STYLE type="text/css">
<!--
#dek {POSITION:absolute;VISIBILITY:hidden;Z-INDEX:200;}
//-->
</STYLE>

Dann der Code im Body:
Code:
<div id="dek"> </div>

<script type="text/javascript">
<!--

//Pop up information box II (Mike McGrath (mike_mcgrath@lineone.net,  http://website.lineone.net/~mike_mcgrath))
//Permission granted to Dynamicdrive.com to include script in archive
//For this and 100's more DHTML scripts, visit http://dynamicdrive.com

Xoffset=-70;    // modify these values to ...
Yoffset= 20;    // change the popup position.

var old,skn,iex=(document.all),yyy=-1000;

var ns4=document.layers
var ns6=document.getElementById&&!document.all
var ie4=document.all

if (ns4)
skn=document.dek
else if (ns6)
skn=document.getElementById("dek").style
else if (ie4)
skn=document.all.dek.style
if(ns4)document.captureEvents(Event.MOUSEMOVE);
else{
skn.visibility="visible"
skn.display="none"
}
document.onmousemove=get_mouse;

function popup(msg,bak){
var content="<TABLE  WIDTH=150 height=150 BORDER=1 BORDERCOLOR=black CELLPADDING=0 CELLSPACING=0 "+
"BGCOLOR="+bak+"><TD ALIGN=left><FONT COLOR=black SIZE=2>Firmaaaa<BR />"+msg+"</FONT></TD></TABLE>";
yyy=Yoffset;
 if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
 if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
 if(ie4){document.all("dek").innerHTML=content;skn.display=''}
}

function get_mouse(e){
var x=(ns4||ns6)?e.pageX:event.x+document.body.scrollLeft;
skn.left=x+Xoffset;
var y=(ns4||ns6)?e.pageY:event.y+document.body.scrollTop;
skn.top=y+yyy;
}

function kill(){
yyy=-1000;
if(ns4){skn.visibility="hidden";}
else if (ns6||ie4)
skn.display="none"
}

//-->
</script>

und zu guter letzt die Definierung im TD Tag
Code:
<td onmouseover="popup('Der Text','#ffffff')" onmouseout="kill()">Überschrift</td>

Ich hoffe mir kann da jemand helfen wie ich das Script anpassen muss, da ich persönlich nicht die meiste Ahnung von JavaScript habe.
 
Hallo,

wie wäre es, wenn du nicht innerhalb des <td>-Tags den onMouseOver-Funktionsaufruf einfügst, sondern einen eigenen Bereich mithilfe des <div>-Tags definierst?!
PHP:
<td>
  <div onMouseOver="...">
    dein Text
  </div>
</td>

Das hätte aber leider den Nachteil, dass nicht mehr die gesamte Zelle bei onMouseOver reagiert! :suspekt:

lg D;-]c
 
Das ist auch eine Möglichkeit, aber die will ich ja gar nicht und bei meinem Problem hilft das leider überhaupt nicht.
Ich denke Du hast das Problem nicht verstanden?!

Es geht darum, das sich das Popup nicht mehr dort befindet wo es sich befinden soll, sobald man nach rechts scrollt...
 
Sorry, da hab ich wohl nicht genau gelesen - in dieser Hinsicht ist mein Beitrag komplett nutzlos! :-)

Wenn ich es jetzt richtig verstanden habe, bräuchtest du einen Befehl, mit dem du die Position des Popup-Fensters festlegen kannst!?

Sorry nochmal, lg D;-]c
 
Hehe das kommt schonmal vor.
Zu deine Frage:
Im Grunde ja, ich lege ja im Script hiermit die Position von der Fläche auf die ich mit der Maus gehe ja eigentlich fest:
[EDIT]
Hmm was habe ich mir da zurecht geschrieben oO.
Ich wollte sagen:
Mit den Xoffset und dem Yoffset lege ich die Position des Popups fest.
Die Werte beziehen sich normalerweise(meiner Ansicht nach zumindest) auf die Position des Mauszeigers, welche den Popup im TD aktiviert.
[/EDIT]
Xoffset=-70; // modify these values to ...
Yoffset= 20; // change the popup position.


Nur leider bringt das alles scheinbar nichts, sobald man den Scrollbalken horizontal verwendet.
Wie gesagt liegen die Popups dann nicht mehr genau unter dem TD auf das man mit der Maus geht sondern viel zu weit links...
Desto weiter man scrollt umso weiter links liegen die Popups oO
Darin liegt das eigentlich Problem und ich habe keine Ahnung woran das liegt, da ich von Javascript bisher null Ahnung habe.
 

Neue Beiträge

Zurück