же если я кликну на пункт меню, то я скролю страницу до нужного мне пункта. Но суть в том, что когда я скролю страницу до нужного блока при нажатии на соответствующий пункт меню мне нужен не функционал при скролле. То есть если я нажала на пункт меню, страница проскролилась до нужного места, но функционал при скролле чтобы не сработал. Это вообще возможно? Вот мой код:
$(".menu-scroll__item").on("click", function (e) {
let idIMenuItem = $(this).attr('href');
idSelectedCategory = $(this).attr('href').replace(/[^\d]+/, '');
$('a.active').removeClass('active');
swiper.slideTo(idSelectedCategory - 1);
$(this).addClass('active');
/* let top = $(idIMenuItem).offset().top;
$('body,html').animate({ scrollTop: top }, 800); */
})
jQuery(window).scroll(function () {
let $sections = $('.products__title');
$sections.each(function (i, el) {
let top = $(el).offset().top;
let bottom = top + $(el).height();
let scroll = $(window).scrollTop();
let id = $(el).attr('id').replace(/[^\d]+/, '');
if (scroll > top && scroll < bottom) {
$('a.active').removeClass('active');
$('a[href="#category' + id + '"]').addClass('active');
if (id != idSelectedCategory) {
swiper.slideTo(id - 1);
}
}
})
});
При клике снимать листенер скролла а при завершении animate вешать обратно?
То что тут в scroll
Обсуждают сегодня