css3 動畫的播放、暫停和重新開始

播放

先在@keyframes中創(chuàng)建動畫,之后把它捆綁到某個選擇器,就可以產(chǎn)生動畫效果。
<code>html</code>

<div id="box" class="box"></div> 

<code>css</code>

@keyframes mymove {
    0% {
      margin-left: 0px;
    }
    50% {
      margin-left: 400px;
    }
    100% {
      margin-left: 0px;
    }
  }
.box {
    margin: 50px 0;
    width: 100px;
    height: 100px;
    background-color: #5578a2;
    animation: mymove 5s infinite ease;
  }

暫停

我們播放動畫時,如要暫停動畫,就要用到<code>animation-play-state</code>這個屬性。<code>animation-play-state</code>屬性有兩個值:

paused: 暫停動畫;
running: 繼續(xù)播放動畫;

當(dāng)然去掉<code>animation-play-state</code>,也可以繼續(xù)播放動畫。

重新開始

如果要重新開始動畫,加載一個相同的動畫,不同名字,可以達(dá)到重新開始動畫的效果。
效果:

效果圖

代碼部分:

<code>html</code>

<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>

<code>css</code>

@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;
  }

<code>js</code>

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;
  });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,437評論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 2,119評論 0 2
  • 變形--旋轉(zhuǎn) rotate() 旋轉(zhuǎn)rotate()函數(shù)通過指定的角度參數(shù)使元素相對原點進行旋轉(zhuǎn)。它主要在二維空間...
    阿振_sc閱讀 980評論 1 5
  • 1.CSS3 邊框 border-radius CSS屬性用來設(shè)置邊框圓角。當(dāng)使用一個半徑時確定一個圓形;當(dāng)使用兩...
    garble閱讀 779評論 0 0
  • 陳希說方木像被困在透明殼子里,可以幫他打碎,即使手破了,又能流多少血。而最后,陳希被割破手腕,放在玻璃池子里,像一...
    柳之尺閱讀 915評論 3 8

友情鏈接更多精彩內(nèi)容