javascript - 如何通过使用 jquery 单击相同的元素来启用和禁用滚动?

标签 javascript jquery css

我想在单击页面的“菜单图标”时禁用滚动,然后在再次单击菜单关闭时再次启用滚动。

我正在尝试这样的事情:

$(document).ready(function(){

  $(".menu").click(function (e) {
    $(".menucontent").show();
    if ( $(".menucontent").is(":visible")) {
      $('html, body').css({ overflow: 'hidden', height: '100%'});
    }else{
      $('html, body').css({ overflow: 'auto', height: 'auto'});      
    }

  });
  });

但我需要一些帮助,因为我是这门语言的新手

最佳答案

你应该用 toggle() 而不是 show

toggle: Display or hide the matched elements.

$(document).ready(function(){
  $(".menu").click(function (e) {
    $(".menucontent").toggle();
      if ( $(".menucontent").is(":visible")) {
        $('html, body').css({ overflow: 'hidden', height: '100%'});
      }else{
        $('html, body').css({ overflow: 'auto', height: 'auto'});      
      }
    });
  });

关于javascript - 如何通过使用 jquery 单击相同的元素来启用和禁用滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968498/

相关文章:

javascript - 显示更多按钮不适用于我的 table

javascript - Twitter 的 "follow button"小部件是否有回调选项

php - 无法根据来自 php 的 json id 在 JavaScript 中设置变量

jquery - twitter bootstrap 模型事件 "shown"在事件处理程序上使用 jquery 调用了两次

javascript - 为什么这个基于属性的选择器在 jQuery 中给出错误?

javascript - 单击以将 div 移动到鼠标坐标

javascript - 在javascript中格式化小数

javascript - 在 HTML Canvas 和 javascript 动画中添加一系列引导按钮

javascript - JCarouselLite 似乎只滚动一次

html - 响应式设计在 chrome/safari 和可能的其他浏览器中根本不起作用?