Хочу скрывать блок пока пользователь находится в процессе пролистывания страницы и показывать его через пару секунд после остановки.
$(window).on('scroll', function(){
var icons = $('.hot-icons');
icons.css('display', 'none');
setTimeout(function(){icons.css('display', 'block')}, 2000);
});
В принципе это работает, но не совсем так как надо, потому что при настоящем листании страницы событие scroll происходит много раз. И блок то появляется, то исчезает, в общем, полная неразбериха. Как можно сделать это по-нормальному?
let timer_id,
w8 = false;
$(window).on('scroll', () => {
let icons = $('.hot-icons');
if (w8) {
clearTimeout(timer_id);
w8 = false;
}
icons.css('display', 'none');
timer_id = setTimeout(() => {
icons.css('display', 'block');
}, 2000);
w8 = true;
});
я бы наверное так сделал, еще можно накрутить логику чтобы само событие скролла срабатывала не каждый раз, а поставить троттл на полсекунды хотяб)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую код для слайдера! Слайдер работает, но на других страница в консоле ошибка (Cannot read property 'classList' of undefined), помогите пожалуйста исправить
Зашла в тупикМне нужно при нажатии кнопки нарисовать такую таблицу: