Видимость "анимации" но задержка обратного эффекта в SCSS

Я создаю элемент, который сначала хочу скрыть, но когда класс добавлен, он появится и оживит верхнюю часть. Проблема в том, что при удалении класса видимость активируется мгновенно, а затем анимируется верхняя часть. Как в 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>

В этом случае вам даже не нужно свойство видимости или дополнительный переход, как показано ниже.

VXp 19.12.2018 00:50
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
2
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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>

Другие вопросы по теме