1

我有一个浮动 jquery 菜单的问题。嗯,它工作得很好。但是当浏览器窗口大小发生变化时,就会出现问题。当窗口足够大时,它可以完美地滚动/滑动,但是如果滚动量和“顶部”量大于窗口高度,我希望它在一个小窗口中滑动。因为现在,如果窗口尺寸太小,菜单会在不可见的区域滑动,例如 1024x768。

这是我的代码:

$float_speed=1500; //milliseconds
$float_easing="easeOutQuint";
$menu_fade_speed=500; //milliseconds
$closed_menu_opacity=0.75;


$fl_menu=$("#float_menu_left");
$fl_menu_menu=$("#fl_menu .menu");
$fl_menu_label=$("#fl_menu .label");

$(window).load(function() {
menuPosition=$('#float_menu_left').position().top;
FloatMenu();
$fl_menu.hover(
    function(){ //mouse over
        $fl_menu_label.fadeTo($menu_fade_speed, 1);
        $fl_menu_menu.fadeIn($menu_fade_speed);
    },
    function(){ //mouse out
        $fl_menu_label.fadeTo($menu_fade_speed, $closed_menu_opacity);
        $fl_menu_menu.fadeOut($menu_fade_speed);
    }
    );
});

$(window).scroll(function () {
FloatMenu();
});

    function FloatMenu(){
var scrollAmount=$(document).scrollTop();
var topAmount = $("#float_menu_left").css("top");
var newPosition=menuPosition+scrollAmount;
if($(window).height()<$fl_menu.height()+scrollAmount){
    $fl_menu.css("top",menuPosition);
} else {
    $fl_menu.stop().animate({top: newPosition}, $float_speed, $float_easing);
}
}

最后一个功能是重要的功能,也是产生问题的功能。特别是这部分:

if($(window).height()<$fl_menu.height()+scrollAmount){
    $fl_menu.css("top",menuPosition);
} else {
    $fl_menu.stop().animate({top: newPosition}, $float_speed, $float_easing);
}

我希望你能帮助我,我已经很努力了,相信我。

此致

4

0 回答 0