javascript - 单击元素外部时更改 CSS 高度

标签 javascript jquery html css

我正在尝试制作移动菜单: 这是 jsfiddle:http://jsfiddle.net/qo81bunh/

在代码中,当你点击按钮展开菜单时,代码如下:

.header .menu-btn:checked ~ .menu {
  max-height: 240px;
}

当你点击“X”时,这里是折叠它的代码:

.header .menu {
  clear: both;
  max-height: 0;
  transition: max-height .2s ease-out;
}

我想每次你点击按钮时,它都会改变最大高度。

我的问题是,当您单击按钮/“X”以外的其他地方时,您如何做到这一点,如果菜单打开,它将关闭菜单。谢谢

如果可能,我如何在 css 中做到这一点?如果不是,jquery?

最佳答案

您需要使用 javascript(或 jquery)通过在单击文档时添加事件监听器来实现这一点。然后它可以检查菜单是否处于事件状态(在您的情况下检查输入),然后关闭它。

document.addEventListener('click', function(e){
  var btn = document.querySelector('.menu-btn');
  if (btn && btn.checked) {
    btn.click();
  }
});

我已经编辑了你的 jsfiddle http://jsfiddle.net/qo81bunh/1/

关于javascript - 单击元素外部时更改 CSS 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010971/

相关文章:

jquery - 创建 span 标签并使用 Jquery 插入

javascript - 更改 KEYBIND Javascript DIV 的 CSS 背景图像

python - Django Select Option 选中问题

javascript - 如何禁用鼠标滚轮单击按钮?

javascript - 如何制作逼真的轮盘赌球旋转动画

javascript - Hook meteor 以捕获所有收集方法错误

javascript - 翻转图像的 Html/CSS/Javascript 函数不起作用

javascript - Angular 中的返回语句不适用于对象

javascript - 音频文件到文本的转换

jquery - 无法获取未定义或空引用的属性 'msie'