Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何改进此代码(固定导航栏)?_Javascript_Jquery - Fatal编程技术网

Javascript 如何改进此代码(固定导航栏)?

Javascript 如何改进此代码(固定导航栏)?,javascript,jquery,Javascript,Jquery,我这样做是为了我可以修复导航栏在网站上,当我滚动页面 我怎样才能改进这段代码,以某种方式减少它 <nav class="main_menu"> // some code... </nav> var menu_offset_top_default = $('.main_menu').offset().top; $(window).scroll(function() { var menu_offset_top = $('.main_menu').offset().t

我这样做是为了我可以修复导航栏在网站上,当我滚动页面

我怎样才能改进这段代码,以某种方式减少它

<nav class="main_menu">
// some code...
</nav>

var menu_offset_top_default = $('.main_menu').offset().top;
$(window).scroll(function() {
    var menu_offset_top = $('.main_menu').offset().top;
    if ($(window).scrollTop() >= menu_offset_top) {
        $('.main_menu').addClass('fixed-top');
    }
    if ($(window).scrollTop() < menu_offset_top_default || $(window).scrollTop() <= 0) {
        $('.main_menu').removeClass('fixed-top');
    }
});

//一些代码。。。
var menu_offset_top_default=$('.main_menu').offset().top;
$(窗口)。滚动(函数(){
var menu_offset_top=$('.main_menu').offset().top;
if($(窗口).scrollTop()>=菜单\u偏移量\u顶部){
$('.main_menu').addClass('fixed-top');
}

if($(窗口).scrollTop()
$(window).scroll(function() {
    if ($(window).scrollTop() >= $('.main_menu').offset().top) {
        $('.main_menu').addClass('fixed-top');
    }
    else {
        $('.main_menu').removeClass('fixed-top');
    }
});

您可以使用css
position:sticky
来删除jquery代码

粘性定位图元是指其计算位置 值是粘性的。在其 包含块超过指定的阈值(例如将顶部设置为 在其流根(或它所属的容器)中的 在中滚动),此时它将被视为“卡住”,直到会议结束 其包含块的相对边

例如:


你能像往常一样共享HTML文件吗?那就简单了。
位置:sticky
?@BenM class fixed top的位置是固定的还是固定的sticky@bp_gusar阅读
position:sticky
。只需为其指定元素高度的
top
位置:甚至更短,删除if-else,因此使用:
$(“.主菜单”).toggleClass('fixed-top',$(窗口).scrollTop()>=$('.main_菜单').offset().top);
请注意浏览器兼容性