仅在桌面上将导航固定到顶部

时间:2015-03-27 17:45:48

标签: jquery html css

尝试将导航设置固定在屏幕顶部,但仅限于屏幕widths > 782px

到目前为止,我已经将一半的脚本运行正常:https://jsfiddle.net/ah4ta7xc/1/

但是,当应用类sticky-menu时,我的方法会在顶部留下不必要的间隙。

HTML:

<div id="foo">Logo and stuff</div>
<div id="main-menu">Site menu</div>

CSS:

body {
    height: 3000px;
}

#foo {
    height: 50px;
    background-color: #ccc;
}

#main-menu {
    width: 100%; 
    height: 30; 
    background-color: black;
    color: white;
    text-align: center;
    padding: 10px;
}

.sticky-menu {
    z-index: 10;
    width: 100%;
    position: fixed;
}

jQuery的:

$(function(){
    if ($(window).width() > 782) {
        $('#main-menu').addClass('sticky-menu');
    }

    $(window).resize(function () {
        if ($(window).width() > 782) {
            $('#main-menu').addClass('sticky-menu');
        }
    else {
        $('#main-menu').removeClass('sticky-menu');
    }
    });  
});

2 个答案:

答案 0 :(得分:0)

您可以将这些行添加到正文的CSS中:

margin: 0;
padding: 0;

答案 1 :(得分:0)

当滚动到达该点时,您只需应用粘性导航,例如:

$(window).scroll(function () {
     var scroll = $(this).scrollTop();
     var topDist = $('#main-menu').offset().top;

     if (scroll > topDist) {
         $('#main-menu').addClass('sticky-menu');
     } else {
         $('#main-menu').removeClass('sticky-menu');
     }
});