Как скролить div с помощью touchmove?

69
02 февраля 2022, 06:50

Мне нужно сделать скрол для div c помощью touchmove. Вот что сейчас сделал.

let lastY
element.addEventListener('touchmove', function(e) {
    let currentY = e.touches[0].clientY
    this.scrollTop += lastY-currentY
    lastY = currentY;
})

Вот пример https://jsfiddle.net/uyfpo0qL/3/

Проблема в том что при старте нового передвижения скролл дергается в начале.

Answer 1

Решил таким образом:

let boxWishes = document.querySelector('.strong-content'),
    startY = 0
boxWishes.addEventListener('touchstart', function(e){
    let touchObj = e.changedTouches[0]
    startY = parseInt(touchObj.clientY)
    e.preventDefault()
}, false)
boxWishes.addEventListener('touchmove', function(e) {
    let touchObj = e.changedTouches[0],
        dist = parseInt(touchObj.clientY) - startY
    this.scrollBy(0, -dist)
    startY = parseInt(touchObj.clientY)
    console.log(e)
    e.preventDefault()
}, false)
READ ALSO
Как выполнить функцию по нажатию кнопки в форме? Flask

Как выполнить функцию по нажатию кнопки в форме? Flask

Разрабатываю небольшое APIМне требуется после нажатия кнопки считать данные из input'a, произвести с ними некоторые действия и выввести на экран,...

115
Приоритет загрузки данных jquery

Приоритет загрузки данных jquery

Всех с новым годом, есть ссылка при нажатию на которую загружаются данные это:

163
не работают менеджеры tomcat

не работают менеджеры tomcat

Не открываются менеджеры "server status, manager app, host manager"нажимаю на соответствующие кнопки и tomcat начинает загружать страницу и больше ничего не происходит:...

115
Vaadin: дублируются значения для Grid

Vaadin: дублируются значения для Grid

Я описал Grid, как описано в инструкции

101