Schieberegler: document.onmouseup fängt das event nicht ab

kokul

Grünschnabel
Hallo!
ich will einen Schieberegler programmieren, den man bei gedrückter Maustaste bewegen kann (für IE):
("div_scroll" ist die id des div-Elements im HTML-Code, in dem das Schieberegler-Bild mit der id "scroll_button" liegt.)
Grundgerüst der JS-Datei :

document.onmousedown = readinpos;
document.onmouseup = stopMoveScroller;

function readinpos() {

if (window.event.srcElement.id == "scroll_button") {
scrollButton=window.event.srcElement.parentElement;
dx=window.event.clientX - scrollButton.style.pixelLeft;
document.onmousemove=moveScroller;
}

}

function stopMoveScroller() {
document.onmousemove=null;
}

function moveScroller() {
document.all.div_scroll.style.pixelLeft=window.event.clientX-dx;
}


Wenn ich jedoch den Schieberegler anklicke, und bei gedrückter Maustaste bewegen will, kommt nur ein schwarzes Zeichen (wie ein Halteverbotsschild). Erst wenn ich die Maustaste loslasse, bewegt sich der Schieberegler mit der Maus.
Zu diesem Zeitpunkt sollte jedoch das onmousemove-Event ja gar nicht mehr aktiv sein (->stopMoveScroller).
Durch erneutes Klicken greift dann die Funktion stopMoveScroller, und der Schieberegler bewegt sich nicht mehr mit der Maus.
Jemand eine Ahnung wo der Fehler liegt?
 
Hallo,

Dieses "Verbotsschild" signalisiert, dass die Aktion, welche du vorhast, dort nicht möglich ist.

Nicht möglich bedeutet dabei, dass du das Element, worüber du dich mit gedrückter Maustaste bewegst, nicht verschieben kannst.
Stelle es dir am besten vor....du hättest anstatt eines Browserfenster bspw. einen WYSIWYG-Editor...da könntest du das Element mit dieser Mausaktion verschieben.

Im Browserfenster geht das normalerweise jedoch nicht(es sei denn, du legst den entsprechenden Bereich als contenteditable fest)...daher dieser Cursor.

Im IE gibt es sogar einen Event, welcher in diesem Moment des "Verschiebeversuchs" feuert...ondragstart.
Dieser Event scheint da hineinzufunken....versuche daher mal
Code:
<body ondragstart="return false">
...das könnte das Problem beheben.
 
:) Jo, danke, das geht!

So ganz verstehen tu ichs aber nicht.
Wieso ist die Aktion bei gedrückter Maustaste nicht möglich, aber bei nicht gedrückter Maustaste schon?
Oder ist das einfach eine Art Sperre des Browsers gegen Drag-and Drop Aktionen?

Naja, hauptsache es :-)

Wie könnte man das eigentlich bei Netscape lösen, wenn es da kein ondragstart gibt?
 

Neue Beiträge

Zurück