Hallo, mathias
vielen dank für deinen kommentar.
Ein besseres Script ist etwa dieses:
http://www.walterzorn.com/dragdrop/dragdrop_e.htm
das script von walter zorn ist ohne zweifel eine geniale bibliothek. doch für meine einfache anwendung ist es zu kompliziert und zu umfangreich. so ein riesenskript mag ich nicht gerne umbauen...
das script von brainjar funktioniert abgesehen von diesem "kardinalsfehler" auch nach 7 jahren im ie6, firefox und safari. zudem ist es damit sehr einfach, neue ziehbare divs hinzuzufügen.
so habe ich das skript angepasst, die funktion "browser" entfernt und die abfragen umgeschrieben.
und keine angst: ich verdiene mein geld nicht mit javascript...;-)
var zIndex=3
function up(what){
zIndex++;
what.style.zIndex=zIndex}
var dragObj=new Object()
function dragStart(event,id){
var el
var x,y
if(id)
dragObj.elNode=document.getElementById(id)
else{
if(window.event)
dragObj.elNode=window.event.srcElement
else
dragObj.elNode=event.target
if(dragObj.elNode.nodeType==3)
dragObj.elNode=dragObj.elNode.parentNode}
if(window.event){
x=window.event.clientX+document.documentElement.scrollLeft
+document.body.scrollLeft
y=window.event.clientY+document.documentElement.scrollTop
+document.body.scrollTop}
else{
x=event.clientX+window.scrollX
y=event.clientY+window.scrollY}
dragObj.cursorStartX=x
dragObj.cursorStartY=y
dragObj.elStartLeft=parseInt(dragObj.elNode.style.left,10)
dragObj.elStartTop=parseInt(dragObj.elNode.style.top,10)
if(isNaN(dragObj.elStartLeft))dragObj.elStartLeft=0
if(isNaN(dragObj.elStartTop))dragObj.elStartTop=0
if(document.attachEvent){
document.attachEvent("onmousemove",dragGo)
document.attachEvent("onmouseup",dragStop)
window.event.cancelBubble=true
window.event.returnValue=false}
else{
document.addEventListener("mousemove",dragGo,true)
document.addEventListener("mouseup",dragStop,true)
event.preventDefault()}}
function dragGo(event){
var x,y
if(window.event){
x=window.event.clientX+document.documentElement.scrollLeft
+document.body.scrollLeft
y=window.event.clientY+document.documentElement.scrollTop
+document.body.scrollTop}
else{
x=event.clientX+window.scrollX
y=event.clientY+window.scrollY}
dragObj.elNode.style.left=(dragObj.elStartLeft+x-dragObj.cursorStartX)+"px"
dragObj.elNode.style.top=(dragObj.elStartTop+y-dragObj.cursorStartY)+"px"
if(window.event){
window.event.cancelBubble=true
window.event.returnValue=false}
else{
event.preventDefault()}}
function dragStop(event){
if(document.detachEvent){
document.detachEvent("onmousemove",dragGo)
document.detachEvent("onmouseup",dragStop)}
else{
document.removeEventListener("mousemove",dragGo,true)
document.removeEventListener("mouseup",dragStop,true)}}