Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите исправить ошибку (https://javascript.ru/forum/misc/47570-pomogite-ispravit-oshibku.html)

krybens 29.05.2014 01:43

Помогите исправить ошибку
 
Есть одностраничный сайт, с меню, которое при скроллинге сайта вниз получает свойство position: fixed, и отображается в верху страницы. Это сделано с помощью такого кода
$(document).ready(function () {
    var $window = $(window),
        $navigation = $('#nav_box'),
        top = $navigation.offset().top;

    $window.scroll(function () {
        if (!$navigation.hasClass("fixed") && ($window.scrollTop() > top)) {
            $navigation.addClass("fixed").data("top", top);
        } else if ($navigation.hasClass("fixed") && ($window.scrollTop() < top)) {
            $navigation.removeClass("fixed");
        }
    });
});


При прокрутке мышью все работает как надо, но при клике по элементам меню, которые ссылаются на якоря на сайте, меню иногда пропадает и появляется если подергать мышь. Не имею ни малейшего понятия в чем может быть причина, может есть какие-нибудь мысли?

krybens 30.05.2014 02:20

Проблемы возникают только в хроме, во всех остальных все работает как задумано, что не так с хромом?

WorM32 30.05.2014 08:40

Может быть в этом месте проблема?
$navigation.addClass("fixed").data("top", top);

Здесь нужно использовать .css('top', top);
$navigation.addClass("fixed").css("top", top);

krybens 30.05.2014 18:52

Дело скорее всего не в скрипте, а в верстке, потому что меню пропадает только при переходе на один конкретный якорь


Часовой пояс GMT +3, время: 23:02.