问题描述
我有一个下拉菜单,如果打开时该菜单会覆盖整个页面(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样式应用于“切换的类”,则可以通过开发人员工具中的“元素”标签进行检查。