Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Jquery 当全屏覆盖打开时,防止iPhone上的身体滚动_Jquery_Html_Ios_Css_Iphone - Fatal编程技术网

Jquery 当全屏覆盖打开时,防止iPhone上的身体滚动

Jquery 当全屏覆盖打开时,防止iPhone上的身体滚动,jquery,html,ios,css,iphone,Jquery,Html,Ios,Css,Iphone,当我的全屏覆盖导航打开时,我试图阻止身体滚动。我已经将一个类show nav应用到带有属性的bodyoverflow:hidden,它在桌面上运行良好,但在iPhone上似乎不起作用 因此,在阅读了有关stackoverflow的类似问题后,我尝试使用e.preventDefault(),这是可行的,但当导航关闭时,主体仍将保持可滚动状态,当导航关闭时,如何重新启用滚动 $( "button.navbar-toggle" ).on( "click", function(e) {

当我的全屏覆盖导航打开时,我试图阻止身体滚动。我已经将一个类
show nav
应用到带有属性的body
overflow:hidden
,它在桌面上运行良好,但在iPhone上似乎不起作用

因此,在阅读了有关stackoverflow的类似问题后,我尝试使用
e.preventDefault()
,这是可行的,但当导航关闭时,主体仍将保持可滚动状态,当导航关闭时,如何重新启用滚动

    $( "button.navbar-toggle" ).on( "click", function(e) {
     $('body').on('touchmove', function (e) {
              e.preventDefault();
     });
      $('html').toggleClass('show-nav');
      $('body').toggleClass('show-nav');
    });

感谢@Tim帮我找到了正确的方向:以下是对我有用的方法:

    // On nav opens toggle show-nav class to html/body (overflow: hidden to prevent scroll on desktop) + disable scroll on mobile
    $( "button.navbar-toggle#open-nav" ).on( "click", function(e) {
      $('body').bind('touchmove', function(e){e.preventDefault()});
      $('html').toggleClass('show-nav');
      $('body').toggleClass('show-nav');
    });
    // On nav close toggle show-nav class to html/body (overflow: hidden to prevent scroll on desktop) + enable scroll on mobile        
    $( "button.navbar-toggle#close-nav" ).on( "click", function(e) {
      $('body').unbind('touchmove');
      $('html').toggleClass('show-nav');
      $('body').toggleClass('show-nav');
    });
    // Clicking on any link will close nav  + enable scroll on mobile
    $('.site-nav ul.nav li').on("click", function(e) {
      $('body').unbind('touchmove');
      $('html').toggleClass('show-nav');
      $('body').toggleClass('show-nav');
    });
希望它能帮助其他遇到同样问题的人:)干杯

您可能想尝试$(this);关于关闭函数。你可以读到它。