Показать сообщение отдельно
  #1 (permalink)  
Старый 23.05.2017, 22:07
Аватар для Darth_Pandora
Аспирант
Отправить личное сообщение для Darth_Pandora Посмотреть профиль Найти все сообщения от Darth_Pandora
 
Регистрация: 29.11.2016
Сообщений: 49

Проблема с совместимостью браузеров
var menu_selector = ".nav"; 
 
function onScroll(){
    var scroll_top = $(document).scrollTop();
    $(menu_selector + " a").each(function(){
        var hash = $(this).attr("href");
        var target = $(hash);
        if (target.position().top-250 <= scroll_top && target.position().top + target.outerHeight() > scroll_top) {
            $(menu_selector + " a.active").removeClass("active");
            $(this).addClass("active");
        } else {
            $(this).removeClass("active");
        }
    });
}
 





$(document).ready(function () {
 
    $(document).on("scroll", onScroll);
 
    $("a[href^=#]").click(function(e){
        e.preventDefault();
 
        $(document).off("scroll");
        $(menu_selector + " a.active").removeClass("active");
        $(this).addClass("active");
        var hash = $(this).attr("href");
        var target = $(hash);
 
        $("html, body").animate({
            scrollTop: target.offset().top-250
        }, 500, function(){
            window.location.hash = hash;
            $(document).on("scroll", onScroll);
        });
 
    });
 
});



Вот эту строчку IE и firefox как будто бы игнорирует. Хотя в хроме всё отображается корректно. А в этих двух оно не даёт отступ сверху. Или можно как нибудь по другому дать отступ?
scrollTop: target.offset().top-250

Здесь, этот скрипт целиком
demo.webcareer.ru/2016/01/change_active_nav/
Ответить с цитированием