先定義好動畫效果經過類名的增長達到樣式的出現css
咱們播放動畫時,如要暫停動畫,就要用到animation-play-state
這個屬性。animation-play-state
屬性有兩個值:html
paused: 暫停動畫; running: 繼續播放動畫;
固然去掉animation-play-state
,也能夠繼續播放動畫。python
播放與從新開始的解決辦法css3
對於元素取多個類名,經過類名的刪除,替換
動畫
注意點:這裏不能刪除和添加類名爲同一個
,並且動畫要同一效果,不一樣動畫名稱
.否則動畫效果沒法重置this
<div id="box" class="box"></div> <p id="text"></p> <div class="control"> <button id="play" value="播放">播放</button> <button id="pause" value="暫停">暫停</button> <button id="restart" value="從新開始">從新開始</button> </div> <style> @keyframes mymove { 0% { margin-left: 0px; } 50% { margin-left: 400px; } 100% { margin-left: 0px; } } @keyframes mymove1 { 0% { margin-left: 0px; } 50% { margin-left: 400px; } 100% { margin-left: 0px; } } .box { margin: 50px 0; width: 100px; height: 100px; background-color: #5578a2; } .play { animation: mymove 5s infinite ease; } .restart { animation: mymove1 5s infinite ease; } .pause { animation-play-state: paused; } </style> <script> var play = document.getElementById('play'), pause = document.getElementById('pause'), restart = document.getElementById('restart'), text = document.getElementById('text'), box = document.getElementById('box'); pause.addEventListener('click', function() { if (box.classList.contains('play')) { box.className = 'pause play box'; } else { box.className = 'pause restart box'; } text.innerHTML = this.value; }); play.addEventListener('click', function() { if (box.classList.contains('play')) { box.className = 'play box'; } else { box.className = 'restart box'; } text.innerHTML = this.value; }); restart.addEventListener('click', function() { if (box.classList.contains('play')) { box.className = 'restart box'; } else { box.className = 'play box'; } text.innerHTML = this.value; }); </script>