@Lighter_Color

Почему неправильно работает скролл в Firefox?

Друзья! Ситуация такая, что есть данный скрипт, который крутит страницу по блокам, в файрфоксе почему-то во-первых прокрутка колесом вверх опускает страницу, а во-вторых почему-то когда достигаешь нижнего блока (3 из 3 например) и хочешь подняться на блок выше, т.е. второй, почему-то крутит сразу на первый. Очень прошу помочь, потому что в js не силен. Спасибо!

var mediaQuery = window.matchMedia('(max-width: 1280px)');
var anchors = [];
var currentAnchor = -1;
var isAnimating  = false;


$(function(){


    function wheelEvent(e) {
        e.preventDefault();
        e.stopPropagation();
        if (mediaQuery.matches) {
            return false;
        }  
        if( isAnimating ) {
            return true;
        }
        isAnimating  = true;
        if( e.originalEvent.wheelDelta >= 0 ) {
            currentAnchor--;
        }else{
            currentAnchor++;
        }
        if( currentAnchor > (anchors.length - 1) 
           || currentAnchor < 0 ) {
            currentAnchor = 0;
        }
        isAnimating  = true;
        $('html, body').animate({
            scrollTop: parseInt( anchors[currentAnchor] )
        }, 1000, 'swing', function(){
            isAnimating  = false;
        });
    }



    function updateAnchors() {
        anchors = [];
        $('.anchor').each(function(i, element){
            anchors.push( $(element).offset().top );
        });
    
    }
updateAnchors();

    // IE9, Chrome, Safari, Opera
    $('body').on('mousewheel', wheelEvent);
    // Firefox
    $('body').on('MozMousePixelScroll', wheelEvent);
    $('body').on('DOMMouseScroll', wheelEvent);
 
});
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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