Ответы пользователя по тегу JavaScript
  • Как сделать, чтобы прокрутка мышью до якоря нормально заработала?

    lenk0belk0
    @lenk0belk0 Автор вопроса
    программироваю
    В итоге погуглила и сделала так:

    function addEvent(elem, type, handler){
        if(elem.addEventListener){
            elem.addEventListener(type, handler, false);
        } else {
            elem.attachEvent('on'+type, handler);
        }
        return false;
    }
    function scrollDirection(){
        var weelEvt = (/Firefox/i.test(navigator.userAgent)) ? 'DOMMouseScroll' : 'mousewheel',
            el = document.body;
        addEvent(el, weelEvt, function(e){
            var evt = e.originalEvent ? e.originalEvent : e,
                delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta;
    
            e.preventDefault();
            var anchor = $('li.active a');
            if (delta < 0) {
                // вниз
                anchor = anchor.parent().next().find('a');
            } else if (delta > 0) {
                // вверх
                anchor = anchor.parent().prev().find('a');
            }
    
            if ($(anchor.attr('href')).offset() != undefined) {
                anchor.click();
            }
        });
    }
    $(function(){
     scrollDirection();
     });

    Может, кому пригодится.
    Ответ написан
    Комментировать