Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Navigation - Fatal编程技术网

Javascript 非画布导航问题

Javascript 非画布导航问题,javascript,jquery,navigation,Javascript,Jquery,Navigation,我做了这个离开画布的导航,一切都很好,除了当导航关闭时,它一直到顶部,我希望它保持在打开的位置。当它打开时,给主体一个滚动位置的边距,关闭后,给主体一个边距:0。帮助任何人。下面是让它更清楚的提琴: 编辑 关键是滚动应该被禁用,但在导航打开时可见。遵循以下步骤: 在站点的任何位置打开导航 导航打开,页面停留在同一位置,不会跳转到任何地方 导航打开时禁用滚动 关闭导航,启用滚动,页面仍在同一位置,没有跳跃 拆下管路 var scrl = $(this).scrollTop(); 如果有人需要的

我做了这个离开画布的导航,一切都很好,除了当导航关闭时,它一直到顶部,我希望它保持在打开的位置。当它打开时,给主体一个滚动位置的边距,关闭后,给主体一个
边距:0
。帮助任何人。下面是让它更清楚的提琴:

编辑

关键是滚动应该被禁用,但在导航打开时可见。遵循以下步骤:

  • 在站点的任何位置打开导航
  • 导航打开,页面停留在同一位置,不会跳转到任何地方
  • 导航打开时禁用滚动
  • 关闭导航,启用滚动,页面仍在同一位置,没有跳跃
拆下管路

var scrl = $(this).scrollTop();

如果有人需要的话,你可以呆在打开的地方,我想,只需要几个变量来存储滚动位置和嵌套对象。这是最后一把小提琴:


他还应该注释掉第7行:$('body').scrollTop(scrl).css('margin-top','0');注释后,这一行将不可能滚动到topYeah,但它可以滚动,这是我不想要的。@OlegYudovich,他仍然可以手动滚动。他不需要该行,请执行以下步骤:1.删除该行2.向下滚动3.切换导航4.关闭导航5.尝试手动向上滚动。看看会发生什么
var navigation = {};

function toggleNav() {
    navigation.scrl = $('body').scrollTop();
    if ($('#inner-wrap').hasClass('opened')) {
        $('#inner-wrap').removeClass('opened');
        $('#close-nav').hide();
        $('body').removeClass('no-scroll');
        $('body').css('top', '0').scrollTop(here);
    } else {
        $('#nav').show();
        $('#inner-wrap').addClass('opened');
        $('#close-nav').show();
        $('body').css('top', - navigation.scrl + 'px').addClass('no-scroll');
    }
}

function openNav() {
    $('#nav').show();
    $('#inner-wrap').addClass('opened');
    $('#close-nav').show();
    $('body').css('top', - navigation.scrl + 'px').addClass('no-scroll');
    alert(navigation.scrl);
}

function closeNav() {
    $('#inner-wrap').removeClass('opened');
    $('#close-nav').hide();
    $('body').removeClass('no-scroll');
    $('body').css('top', '0').scrollTop(navigation.scrl);
    alert(navigation.scrl);
}

$('#toggle-nav').click(function () {
    toggleNav();
});

$("#close-nav").click(function(){
    closeNav();
});