【问题标题】:Visibility "animation" but a delay on the reverse effect in SCSS可见性“动画”,但 SCSS 中的反向效果有延迟
【发布时间】:2018-12-19 07:49:52
【问题描述】:

我正在创建一个最初想要隐藏的元素,但是当添加一个类时,它会出现并为顶部设置动画。问题在于,在类移除时,可见性会立即触发,然后顶部会被动画化。在 SCSS 中,我如何确保在顶部动画之后才会影响 on 类删除、可见性?

$(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>

【问题讨论】:

  • 在这种情况下,您甚至不需要下面提供的可见性属性或额外的过渡。

标签: jquery html css css-transitions


【解决方案1】:

.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>

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多