Плавающее меню не работает в Chrome? - PullRequest
1 голос
/ 04 августа 2010

Я пытаюсь создать плавающее меню, которое следует за пользователем, когда он прокручивает экран:

    menuYloc = parseInt($("#floatMenu").css("top").substring(0,$("#floatMenu").css("top").indexOf("px")));
    $(window).scroll(function() {
        var offset = menuYloc+$(document).scrollTop()+"px";  
        $("#floatMenu").animate({top:offset},{duration:500,queue:false});  
    });

Это прекрасно работает в Firefox, но не работает в Chrome. Я что-то пропустил?

1 Ответ

2 голосов
/ 04 августа 2010

Вместо того, чтобы пытаться анализировать верхнюю позицию меню из CSS, вы можете использовать методы position () и offset () :

menuYloc = $("#floatMenu").offset().top;
$(window).scroll(function() {
    var offset = menuYloc+$(document).scrollTop()+"px";  
    $("#floatMenu").animate({top:offset},{duration:500,queue:false});  
});

position () относится к родительскому элементу смещения элемента (т. Е. К чему бы ни содержался #floatMenu), тогда как offset () относится к документу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...