@thesirvlad

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

Здравствуйте, мне нужно сделать так, чтобы если мышка была на блоке swiper, тогда параметр navigation был false, я вроде бы написал, но код не работает почему-то
if (document.querySelector('#fullpage')) {
    if (window.innerWidth >= 993) {
        let isNavigationEnabled = true; // Флаг для отслеживания состояния автопрокрутки

        const fullPageInstance = new fullpage('#fullpage', {
            navigation: isNavigationEnabled,
            navigationPosition: 'left',
            scrollHorizontally: true,
            onLeave: function(origin, destination, direction, trigger) {
                var origin = this;
                const el = document.querySelector('.header__column-location');
                el.classList.remove("view");
                if (origin.index == 0 && direction =='down') {
                    document.querySelector('#fp-nav.fp-left').classList.add('scroll');
                } else if (origin.index == 2 && direction == 'down') {
                    document.querySelector('#fp-nav.fp-left').classList.remove('scroll');
                } else if (origin.index == 3 && direction == 'down') {
                    document.querySelector('#fp-nav.fp-left').classList.add('scroll');
                } else if (origin.index == 6 && direction == 'down') {
                    document.querySelector('#fp-nav.fp-left').classList.remove('scroll');
                } else if (origin.index == 7 && direction == 'up') {
                    document.querySelector('#fp-nav.fp-left').classList.add('scroll');
                } else if (origin.index == 4 && direction == 'up') {
                    document.querySelector('#fp-nav.fp-left').classList.remove('scroll');
                } else if (origin.index == 3 && direction == 'up') {
                    document.querySelector('#fp-nav.fp-left').classList.add('scroll');
                } else if (origin.index == 1 && direction == 'up') {
                    document.querySelector('#fp-nav.fp-left').classList.remove('scroll');
                };
            },
        });

        const elementOne = document.querySelector('.swiper');

        elementOne.addEventListener('mouseenter', () => {
            isNavigationEnabled = false;
            fullPageInstance.navigation = isNavigationEnabled;
        });

        elementOne.addEventListener('mouseleave', () => {
            isNavigationEnabled = true;
            fullPageInstance.navigation = isNavigationEnabled;
        });
    }
}
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
muscimolus
@muscimolus
Там всё проще:

<body style="height: 200vh;">
    <div class="swiper" style="width: 50vw; height: 50vh; margin: auto; background-color: black;"></div>
</body>

const swiper = document.querySelector('.swiper')
        if(swiper){
            swiper.onmouseenter = () => {
                const X = window.scrollX
                const Y = window.scrollY
                window.onscroll = () => {
                    window.scrollTo(X, Y)
                }
                swiper.onmouseleave = () => {
                    window.onscroll = () => null
                }
            }
        }


А прокрутку окна как таковую - отменить вообще нельзя, поэтому просто скроллишь окно в предыдущее положение.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы