@DD-var

Как исправить торможение скролла jquery в framework Blazor WASM?

В обычном html все работает можно сказать идеально без мелких тормозов. но в WASM происходит проблема, значение повторяется у scrollLeft и обновление элемента происходит когда только отпустишь лкм, как это можно исправить?
lastValue= значение которое должно быть
scroll Left= значени element.scrollLeft
674d71e63fba6245927875.jpeg
Код:
<style>
.slider .slides {
    display: grid;
    grid-auto-flow: column;
    overflow: hidden;
}

.slider .slides .slide img {
    width: 400px;
}
</style>
<div class="slider">
    <div class="slides" id="slider">
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
        <div class="slide"><img src="https://vignette.wikia.nocookie.net/the-long-dark/images/6/66/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE_%D0%BB%D0%BE%D1%81%D1%8C.jpg/revision/latest?cb=20191214081501&path-prefix=ru"></div>
    </div>
</div>

<script>
let isMoving = false;
let lastMouseX = 0;

const slider = document.querySelector('#slider');

function moveSlider(delta) {
    slider.scrollLeft += delta;
}

document.addEventListener('mousedown', (event) => {
    isMoving = true;
    lastMouseX = event.clientX; // Запоминаем начальную позицию мыши
});

document.addEventListener('mouseup', () => {
    isMoving = false; // Останавливаем движение при отпускании кнопки мыши
});

document.addEventListener('mousemove', (event) => {
    if (isMoving) {
        const deltaX = event.clientX - lastMouseX; // Вычисляем изменение позиции мыши
        moveSlider(deltaX); // Перемещаем слайдер
        lastMouseX = event.clientX; // Обновляем последнюю позицию мыши
    }
});
</script>
  • Вопрос задан
  • 14 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы