iOS: -webkit-overflow-scrolling: touch and scrollTop

У меня возникают проблемы при попытке вернуться к началу списка.

Я поместил -webkit-overflow-scrolling:touch в список, чтобы получить прокрутку импульса. Однако, когда я использую jQuery scrollTop();, пока прокрутка импульса все еще продолжается, она прыгает вверх, но не останавливает импульс. Таким образом, он продолжает снижаться до тех пор, пока импульс не закончится.

Есть ли простой способ остановить прокрутку импульса?


person Luxbit    schedule 05.07.2015    source источник


Ответы (1)


Установите для списка -webkit-overflow-scrolling стиль 'auto', а затем вернитесь к 'touch' после короткого тайм-аута.

i.e.

let scrollContainer = document.getElementById('yourListId');

scrollContainer.style['-webkit-overflow-scrolling'] = 'auto';  // stop scroll

setTimeout(function() {
       scrollContainer.scrollTop = 0;  // or jQuery scrollTop()
       scrollContainer.style['-webkit-overflow-scrolling'] = 'touch'; // re-enable
}, 2);

Ссылка: этот ответ SO. (изменили их реализацию, чтобы избавиться от рывков при перерисовке полосы прокрутки в настольных браузерах)

person Dale    schedule 17.02.2016