OK Ich versuche mit JavaScript eine benutzerdefinierte Bildlaufleiste in meiner HTML -Seite zu erstellen. Mein HTML -Setup ist so: < /p>
< /code>
und meine JavaScript -Datei, die so steuert, wie folgt: < /p>
var mouseBeingPressed = false;
document.addEventListener("mousemove", function(event){
trackScrollBar(event);
});
scrollBar.addEventListener("mousedown", function(){
mouseBeingPressed = true;
});
document.addEventListener("mouseup", function(){
if(mouseBeingPressed == true){
mouseBeingPressed = false;
}
});
function trackScrollBar(e) {
if (mouseBeingPressed == true) {
let x = e.clientX;
let y = e.clientY;
orientScrollbar(x, y);
function orientScrollbar(paramX, paramY) {
scrollBar.style.marginTop = (paramY-scrollBarYPos) + "px";
scrollBarYPos = (scrollBar.getBoundingClientRect().top);
}
}
}
< /code>
Wenn ich dies implementiere, finde ich, dass es beim Ziehen der Bildlaufleiste durch den Scrollbar -Container auf und ab zu bewegen scheint, aber es steckt weiter auf und ab. Ich vermute, dass das Problem in der Funktion "orientscrollbar" auftritt. Wenn JS den Rand der Scrollbar aktualisiert, wird die aktualisierte Position der Scrollbar nicht sofort registriert. Und so wird die alte Position dem ScrollBaryPos -Wert zugeordnet (eine globale Variable, die die Position der Bildlaufleiste verfolgt). Ist das der Fall? Wenn ja, wie reparieren Sie das?
Warum aktualisiert meine benutzerdefinierte Bildlaufleiste die aktuelle Position nicht? ⇐ HTML
-
- Similar Topics
- Replies
- Views
- Last post