Почему моя пользовательская прокрутка не обновляет свою текущую позицию?Html

Программисты Html
Ответить
Anonymous
 Почему моя пользовательская прокрутка не обновляет свою текущую позицию?

Сообщение Anonymous »

ОК, я пытаюсь создать пользовательскую прокрутку на моей HTML -странице, используя JavaScript. Моя настройка HTML такая: < /p>



< /code>
и мой файл JavaScript, который управляет этим: < /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>
Когда я это реализую, я обнаружил, что, перетаскивая панель свитка, он, кажется, движется вверх и вниз по контейнеру прокрутки, но он быстро заставляет сбой вверх и вниз. Я предполагаю, что проблема возникает в функции orientscrollbar. Когда JS обновляет маржинальный турнир прокрутки, обновленная позиция прокрутки не зарегистрирована немедленно. И поэтому старая позиция назначается значению Scrollbarypos (которая является глобальной переменной, которая отслеживает положение прокрутки). Это так? Если да, то как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-position
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»