function dialog_move(id)
{if(id)
{active=id;
b_top=mouse_y-parseInt(document.getElementById(active).style.top);
b_left=mouse_x-parseInt(document.getElementById(active).style.left);
}
if(document.getElementById(active))
{
if(eval(mouse_x-b_left+parseInt(document.getElementById(active).style.width))>parseInt(screen.availWidth))
{document.getElementById(active).style.left=parseInt(screen.availWidth)-parseInt(document.getElementById(active).style.width)-20;}
else if(eval(mouse_x-b_left)<=0)
{document.getElementById(active).style.left=1;}
else {document.getElementById(active).style.left=eval(mouse_x-b_left); }
if(eval(mouse_y-b_top)<=0)
{document.getElementById(active).style.top=1;}
else if(mouse_y-b_top+parseInt(document.getElementById(active).style.height)>=screen_height)
{document.getElementById(active).style.top=screen_height-parseInt(document.getElementById(active).style.height);}
else {document.getElementById(active).style.top=eval(mouse_y-b_top); }}
else {return;}
bewegungs_timeout=window.setTimeout('dialog_move()',0);
}
Das ist die Funktion, die bei meinem System die Fenster bewegt.
Die Variablen mouse_x und mouse_y enthalten die Mausposition, die durch folgenden Funktion gefüllt wird:
if(document.getElementById&&document.all) {MS5=1;}
else if(document.getElementById&&!document.all) {NS6=1;}
function maus_werte(even)
{if(MS5)
{mouse_x=eval(window.event.x);
mouse_y=eval(window.event.y);
}
else if(NS6) {mouse_x=eval(even.screenX);
mouse_y=eval(even.screenY-115); }
}
Diese Variablen müssen natürlich global sein.
Die einzelnen, zu bewegenden Bereiche müssen folgenden Aufruf enthalten:
onmousedown="dialog_move(this.id)"
(Ich empfehle die Karten dynamisch zu generieren, ohne sie alle mit HTML zu schreiben. Um dynamische IDs zu kriegen, habe ich folgenden Funktion:
function zufallsgenerator(range)
{var randomnumber = Math.random() ;
var zufall = Math.round( (range-1) * randomnumber) + 1 ;
return zufall;}
function get_id()
{zufall='';
do {while(zufall.length<=5)
{do {zahl=zufallsgenerator(79);}
while(zahl<41||zahl==60)
zufall+=unescape('%'+zahl);
}}
while(document.getElementById(zufall))
return zufall;
}
Sie generiert ein fünfstelliges Wort, das man als id verwenden kann.
)
Die Bewegungs-Funktion sorgt dafür, dass entsprechende Element die Maus verfolgt (im IE5+ und NS6+).
Dabei verhindert sie, dass das Element über den Rand hinaus geschoben werden.
(die Elemente müssen eine fest definierte Höhe und Breite haben).
Das Element funktioniert so lange, bis das Timeout gelöscht wird.
Ich nehme an, "onmouseup" soll die Bewegung aufhören.
Dafür brauchst du am Anfang der Scripts folgende Zeilen:
active='';
document.onmouseup=kill_bewegung;
function kill_bewegung()
{
window.clearTimeout(bewegungs_timeout);
active='';
}
Das wird dir wahrscheinlich alles nicht helfen, aber man soll mir nicht nachsagen können, ich wolle nicht helfen.