@siroper

Как остановить событие скролла в скрипте?

Здравствуйте. Пытаюсь сделать появление блоков в зависимости от скролла мыши, свайпа, учитывая что некоторые блоки могут иметь высоту выше, чем область экрана.

Суть такая: Если блок по размеру экрана (100vh), то при скролле - переход на следующий блок.
Если блок выше, чем область экрана - то сначала идет скроллинг его содержимого, а затем уже переход к следующему блоку. (fullpage.js и прочее не предлагать).

Что получилось на данный момент: https://codepen.io/getgoodly/pen/bGaNjEq

Проблема в том, что один раз колесом мыши крутнул - событие сработало несколько раз, соответственно перепрыгивает блоки (например на блок 3 нереально попасть), и вообще очень быстро мотаются.

Как сделать чтобы после перелистывания блока, отключить скроллинг чтоле на миллисекунд 300 например или что-то в этом роде.. Важно еще то, что скролл работает внутри div wrapper, а не body
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 1
@defriz
люблю js
держите где-нибудь (например в localStorage) время последнего скролла + 300мс и сравнивайте: дата сейчас больше той, что хранится, если нет, то просто return
покажу в коде
var user = { lastScroll: 0 };
// представим, что произошло событие скролла
if(user.lastScroll > Date.now()) return;
user.lastScroll = Date.now() + 300;
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы