隐藏“主体”溢出或通过onclick函数滚动

问题描述

我有一个下拉菜单,如果打开时该菜单会覆盖整个页面(100vh + 100 vw),当我单击下拉菜单按钮时,我尝试禁用主体的滚动。

由于某种原因,添加删除点击类对我而言不起作用,但是直接添加样式对我来说则非常有效,方法是:<a href="#" onclick="document.body.style.overflow = 'hidden';>

但是,再次单击链接不会将溢出设置为再次滚动,所以有人可以帮助我吗?

解决方法

两个问题,您在样式已“隐藏”后没有删除样式,并且在onclick末尾错过了引号。波纹管代码将在它们之间进行切换之前检查主体溢出是否被隐藏。

<a href="#" onclick="document.body.style.overflow = document.body.style.overflow == 'hidden' ? 'auto' : 'hidden' "/>

我还建议在运行JavaScript时,使用插入button元素的a

<button onclick="document.body.style.overflow = document.body.style.overflow == 'hidden' ? 'auto' : 'hidden' "/>

如果您要切换课程,这应该可以。 mystyle是您要切换的类的类名。

<button onclick="document.body.classList.toggle('mystyle')"/>

如果切换类无效,则存在一个特殊性问题,即其他CSS样式应用于“切换的类”,则可以通过开发人员工具中的“元素”标签进行检查。