【问题标题】:How to undo javascript function如何撤消javascript函数
【发布时间】:2020-09-17 13:58:31
【问题描述】:

我有一个这样的功能,可以切换我的下拉菜单。

<div class="module widget-handle mobile-toggle right visible-sm visible-xs">
  <a id="mobile-nav" href="#">
    <div class="container1" onclick="myFunction(this)">
      <div class="bar1"></div>
      <div class="bar2"></div>
      <div class="bar3"></div>.
    </div>
  </a>
</div>
<script>
  function myFunction(x) {
    x.classList.toggle('change');
    document.body.style.overflow ='hidden'
  }
</script>

最后一部分

document.body.style.overflow = 'hidden'

当下拉菜单打开时,防止页面在顶部溢出。问题是,当我单击菜单栏时,虽然溢出消失了,但再次单击栏会显示页面,但由于溢出被隐藏而将其锁定。

我想撤消

document.body.style.overflow = 'hidden'

当菜单关闭时,我最接近理解的是函数doBack。我可以以某种方式将doBack 添加到我现有的函数中吗?

手机页面here

这是一个 WordPress 网站,上面的 javascript 通过按下栏来切换下拉菜单。为了扩展下拉菜单,我将 collapse 类做得更大,就像这样。

@media (max-width: 768px) {
  .collapse {
    position: absolute;
    height: 775px;
    background-color: white;
    z-index: 99999 !important;
    top: 75px;
    left: -50px;
    line-height: 10px;
  }
}

HTML:

<div class="module-group right">
  <div class="module left">
    <div class="collapse navbar-collapse navbar-ex1-collapse">
      <ul id="menu" class="menu">
        <li id="menu-item-15050" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-15050 dropdown">
          <a title="Contact" href="url">Contact
            <ul role="menu" class="dropdow n-menu">
            </ul>
          </a>
        </li>
      </ul>
    </div>
  </div>
</div>

【问题讨论】:

    标签: javascript php html css


    【解决方案1】:

    您可以使用以下方法消除样式属性:

    document.body.style.overflow = null
    

    【讨论】:

    • 谢谢。问题是我想要这种风格,而不是当我关闭下拉菜单时。
    【解决方案2】:

    您可以简单地添加一个新的 CSS 类:

    .body-overflow {
      overflow: hidden;
    }
    

    并在您的 javascript 函数中添加另一个 .classList.toggle(),但这次是在正文中:

    function myFunction(x) {
      x.classList.toggle('change');
      document.body.classList.toggle('body-overflow');
    }
    

    【讨论】:

    • 谢谢,但没用。如果你看这里,当我打开菜单时页面顶部仍然溢出4309.co.uk/drawing
    • 问题是我没有一个名为body-overflow 的类。我误解了关于类列表的一些东西吗?切换?
    • @Stacksof99,我知道你没有我只是提供了上面的 CSS 类来将它包含在你的 CSS 中,如果你可以访问 CSS 并且可以修改它,只需添加它并添加 js我提供的代码,那么它应该可以工作。
    • 感谢您的努力,但我尝试了但没有成功。
    猜你喜欢
    • 1970-01-01
    • 2021-02-15
    • 2010-10-03
    • 1970-01-01
    • 2017-08-30
    • 2021-06-01
    • 2014-04-12
    • 2011-11-25
    • 2013-05-10
    相关资源
    最近更新 更多