关闭切换后无法滚动正文

Not able to scroll through body after closing toggle

我阻止用户在使用 jQuery 打开切换按钮后滚动浏览 HTML 正文。但是,一旦切换关闭,我就很难启用向后滚动。我想我应该在

中使用两个 jQuery 类
$('body').css({overflow: 'hidden'});

另一个说 .toggleClass 不再活跃。但是,我还不知道该怎么做,或者是否可行。

在此先感谢您对这位新手的帮助。

这是我的 CodePen 的 link,以防您发现它更容易。下面附上相同的代码,但没有 lipsum 文本。

代码笔:https://codepen.io/fergos2/pen/jOOWeqR

$(document).ready(function() {
  $('.toggle').click(function() {
    $('.toggle').toggleClass('active');
    $('.toggle-content').toggleClass('active');
    $('body').css({overflow: 'hidden'});
  });
});
body {
  overflow: auto;
}

.container {
  width: 100%;
  height: 1000px;
  margin: 0 auto;
  background-color: #eee;
}

.text {
  padding: 10px;
}

.wrapper {
  background-color: pink;
  position: relative;

  display: flex;
  align-items: center;
}

.toggle {
  display: block;
  width: 20px;
  height: 20px;
  float: left;
  cursor: pointer;
  color: white;
  text-align: center;
  background-color: green;
  margin: 10px;
}

.toggle.active {
  background-color: red;
}

.toggle-content {
  display: none;
}

.toggle-content.active{
  display: block;
  background-color: white;
  border: 1px solid black;
  position: absolute;
  top: 40px;
  left: 0;
}
<div class="container">
  <div class="wrapper">
    <div class="toggle">T</div>
    <div class="toggle-content">
      <p>Some content</p>
    </div>
  </div>

  <div class="text">
  </div>

</div>

再次单击 $('body').css({overflow: 'hidden'}); 后,您并没有删除它。我会通过检查 .toggle 是否有 active class 来处理这个问题。像这样:

if($('.toggle').hasClass('active')){
    $('body').css({overflow: ''});
}else{
    $('body').css({overflow: 'hidden'});
}

我已经用这个新代码更新了您的 CodePen

您也可以使用:

$("body").toggleClass("hidden");

然后在你的 css 中创建一个 class:

.hidden {
  overflow: hidden;
}