jquery - 可见性 "animation"但 SCSS 中的反向效果有延迟

标签 jquery html css css-transitions

我正在创建一个最初想要隐藏的元素,但是当添加一个类时,它将出现并为顶部设置动画。这样做的问题是,在类删除时,可见性会立即触发,然后顶部会进行动画处理。在 SCSS 中,如何确保类删除、可见性直到顶部动画之后才生效?

$(window).on("load", function(){
  $("button").click(function(){
    $(".nav-slider").toggleClass("is_visible");
  });
});
.nav-slider {
  position:fixed;
  top:-100%;
  left:0;
  width:100%;
  height:calc(100% - 60px);
  background-color:$white;
  z-index:1;
  visibility:hidden;
  transition:top 0.2s, visibility 0s;
  -o-transition:top 0.2s, visibility 0s;
  -ms-transition:top 0.2s, visibility 0s;
  -moz-transition:top 0.2s, visibility 0s;
  -webkit-transition:top 0.2s, visibility 0s;
  padding-top:40px;
}

.nav-slider.is_visible {
  top:60px;
  visibility: visible;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="nav-slider">
test
</div>

<button>slider</button>

最佳答案

您可以对 .is_visible 进行不同的转换

$(window).on("load", function() {
  $("button").click(function() {
    $(".nav-slider").toggleClass("is_visible");
  });
});
.nav-slider {
  position: fixed;
  top: -100%;
  left: 0;
  width: 100%;
  height: calc(100% - 60px);
  background-color: $white;
  z-index: 1;
  visibility: hidden;
  padding-top: 40px;
  transition: top 2s, visibility 2s;
}

.nav-slider.is_visible {
  transition: top 2s, visibility 0s;
  top: 60px;
  visibility: visible;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="nav-slider">
  test
</div>

<button>slider</button>

关于jquery - 可见性 "animation"但 SCSS 中的反向效果有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53841350/

相关文章:

javascript - jQuery:文件输入元素上的 “change” 事件在 IE 中不会触发,但在 Chrome 中工作

javascript - 随机应用于元素的 jQuery 动画函数

html - 将鼠标悬停在子菜单上后,为父菜单项设置不同的颜色

jquery - chzn-select 不需要的下拉列表创建了 jquery

javascript - 无限滚动不起作用

javascript - JSON.parse(hr.response) 错误

javascript - 单击带有 anchor #的链接不会转到页面顶部

html - 在 css 中倾斜正方形的垂直线?

javascript - <文本区域> : ctrl + z breaks after changing the value content through javascript

html - 将 div 推到 <a> 类上