1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>fe 21 css3 animation</title> <style> .gua-block { background: lightblue; width: 100px; height: 100px; } .gua-spin { animation: spin linear 2s; animation-iteration-count: 1; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.shake { animation: shake linear 0.6s; animation-iteration-count: 1; }
@keyframes shake { 0% { transform: translateX(0px); } 10% { transform: translateX(-10px); } 30% { transform: translateX(10px); } 50% { transform: translateX(-10px); } 70% { transform: translateX(10px); } 90% { transform: translateX(-10px); } 100% { transform: translateX(0px); } }
.gua-shake { transform: translateX(100px); } </style> </head> <body> <div class="gua-block"> 方块 </div> <button class="play">播放动画</button>
<div class="gua-shake"> <input class='input' value=""> <br> <button class="login">登录</button> </div> <script> var e = function(sel) { return document.querySelector(sel) }
var playAnimation = function() { var block = e('.gua-block') // 让它开始播放动画 block.classList.add('gua-spin') }
var shake = function(element) { element.classList.add('shake') }
var __main = function() { e('.login').addEventListener('click', function(event) { // if 登录不成功 var input = e('.input') shake(input) }) // 绑定一个 animationend 事件, 在动画结束后删除动画 class e('.input').addEventListener('animationend', function(){ e('.input').classList.remove('shake') })
e('.play').addEventListener('click', function(e) { playAnimation() }) // 绑定一个 animationend 事件, 在动画结束后删除动画 class var block = e('.gua-block') block.addEventListener('animationend', function(){ block.classList.remove('gua-spin') }) }
__main() /* animationend 事件 在动画播完后触发 动画播放被暂停不会触发 animationiteration 事件 在动画播放一轮后触发 如果动画只播放一轮, 那么不会触发此事件 利用事件测试动画 */ </script> </body> </html>
|