0
次の例では、滑らかなslideIn/Outアニメーションで要素の位置を制御することを目標にしています。
問題は、新しいクラスを追加して最初のアニメーションを上書きし、アニメーションの2番目の部分が要素の位置を0にリセットしてからslideInを再び開始することです。
以下のスニペットは、私が説明しようとしたことをよりよく示します。要素を画面外に移動し、CSSアニメーションで戻す
$('.trigger').click(function() {
if (!$('.target').hasClass('hide')) {
\t $('.target').addClass('hide')
} else {
$('.target').addClass('show')
}
})
.target {
height: 50px;
width: 50px;
background-color: blue;
margin: 0 auto;
}
.trigger {
margin: 0 auto;
display: block;
}
@keyframes hide{
0% { transform: translate(0);}
20% { transform: translate(5px);}
100% { transform: translate(-120vw);}
}
@keyframes show {
0% { transform: translate(-120vw);}
80% { transform: translate(-5px);}
100% { transform: translate(0);}
}
.hide {
animation: hide 0.5s forwards ease-in-out;
animation-delay: .2s;
}
.show {
animation: show 0.5s forwards ease-in-out;
animation-delay: .2s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class='target'> </div>
<button class='trigger'>Trigger</button>