基本的に私はdivでドアエフェクトの種類を作りたいと思った。純粋なCSSのアニメーション再生状態のドアエフェクトボタン
ボタンをクリックすると開くとシャットダウンする。
var buttons = document.querySelectorAll('button');
[].forEach.call(buttons, function(btn) {
btn.addEventListener('click', function(e) {
var target = e.target;
if (target.nodeName.toLowerCase() === 'button') {
document.getElementById(target.dataset.target + '-div').className = target.textContent === 'stop' ? '' : target.textContent;
}
});
});
button {
height: 24px;
font-size: 16px;
}
div {
position: relative;
left: 0;
margin-left: 0;
padding-left: 0;
transform: none;
margin-top: 10px;
width: 200px;
height: 200px;
border: 0 white solid;
background-color: green;
}
#transition-div {
transition: transform 1s ease-in-out;
}
#transition-div.start {
transform: translateX(400px);
}
@keyframes move-right {
0% { transform: translateX(0px); }
50% { transform: translateX(400px); }
100% { transform: translateX(0px); }
}
<section>
<h1>Transition</h1>
<button data-target="transition">start</button>
<button data-target="transition">stop</button>
<div id="transition-div"></div>
</section>
トップの結果は、純粋なCSSで作成することができますまたはJavaScriptをウェブページに実装する必要がありませんか? 「開始」ボタンと「停止」ボタンを1つのボタンに統合できますか? 乾杯!
は、このスレッドを見てください - http://stackoverflow.com/questions/33347992/reuse-css-animation-in-reversed-direction-by-resetting-the-state/33351228#33351228あなたは非常に似たようなものを探しています(つまり、2回目のクリックまたは2回目のボタンのクリックで逆のアニメーションを再生します)。 – Harry
上記のコメントは、あなたが "アニメーション"要素に対してそれをしようとしているという前提に基づいています。 CSSを使用してその効果を達成しようとしているのであれば、トランジションを使用することができます。 – Harry