Я пытаюсь применить свой переход fade каждый раз, когда нажимаю кнопку.
Каков наилучший способ для достижения этой цели?
Так что вместо .addClass () и затем .removeClass () после его добавления представьте что-нибудьнапример .apply (), который просто применил бы класс один раз, чтобы он не «сохранил» класс.
Прямо сейчас у меня есть .toggleClass
, который применяет переход только каждый второй щелчок (в основном как: addClass, removeClass, addClass и т. д.).Я могу подумать о том, чтобы сделать это по-другому, посмотрев, есть ли у него класс, а если нет, то удалите его и добавьте его снова, но это кажется настолько нелогичным и заставляет меня думать, что должен быть более простой и понятный способ.сделать это.
$("#btn").click(function() {
$("#cat").toggleClass("fade");
})
@import url('https://fonts.googleapis.com/css?family=Yatra+One');
body,
html {
height: 100%;
width: 100%;
margin: 0;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #eee;
}
.generator {
height: 400px;
width: 400px;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
#cat {
height: 300px;
width: 400px;
border-radius: 5px;
transform: scale(1);
opacity: 1;
}
.fade {
animation: fade .5s linear forwards;
}
@keyframes fade {
0% {
transform: scale(1);
opacity: 1;
}
50% {
transform: scale(0);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 1;
}
}
#btn {
height: 90px;
width: 400px;
outline: none;
border: none;
border-radius: 5px;
background-color: #4682B4;
color: white;
font-size: 1.75em;
font-family: Yatra One;
transition: background-color 0.1s ease-in-out;
}
#btn:hover {
cursor: pointer;
background-color: #508EC3;
}
#btn:active {
background-color: #4293D8;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="generator">
<img id="cat" src="https://i.imgur.com/RVQZ9UM.png" alt="cat" />
<button id="btn">New cat</button>
</div>
</div>