[CSS] Animation:使用 keyframe 製作動畫效果


Shake

  1. .face:hover {
  2. animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
  3. transform: translate3d(0, 0, 0);
  4. backface-visibility: hidden;
  5. perspective: 1000px;
  6. }
  7.  
  8. @keyframes shake {
  9. 10%, 90% {
  10. transform: translate3d(-1px, 0, 0);
  11. }
  12. 20%, 80% {
  13. transform: translate3d(2px, 0, 0);
  14. }
  15.  
  16. 30%, 50%, 70% {
  17. transform: translate3d(-4px, 0, 0);
  18. }
  19.  
  20. 40%, 60% {
  21. transform: translate3d(4px, 0, 0);
  22. }
  23. }
Demo

Bounce-in

  1. span, img {
  2. opacity: 0;
  3. animation-name: bounceIn;
  4. animation-duration: 450ms;
  5. animation-timing-function: linear;
  6. animation-fill-mode: forwards;
  7. }
  8. img {animation-delay: 2s;}
  9. span:nth-child(2){animation-delay: 2.75s;}
  10. span:nth-child(3){animation-delay: 3s;}
  11. span:nth-child(4){animation-delay: 3.15s;}
  12.  
  13. @keyframes bounceIn {
  14. 0%{
  15. opacity: 0;
  16. transform: scale(0.3) translate3d(0,0,0);
  17. }
  18. 50%{
  19. opacity: 0.9;
  20. transform: scale(1.1);
  21. }
  22. 80%{
  23. opacity: 1;
  24. transform: scale(0.89);
  25. }
  26. 100%{
  27. opacity: 1;
  28. transform: scale(1) translate3d(0,0,0);
  29. }
  30. }
Demo

fadeIn

  1. /*=== Trigger ===*/
  2. .animate {
  3. -webkit-animation-duration: 1s;
  4. animation-duration: 1s;
  5. -webkit-animation-fill-mode: both;
  6. animation-fill-mode: both;
  7. }
  8.  
  9. /*=== Optional Delays, change values here ===*/
  10. .one {
  11. -webkit-animation-delay: 0.4s;
  12. -moz-animation-delay: 0.4s;
  13. animation-delay: 0.4s;
  14. }
  15.  
  16. .two {
  17. -webkit-animation-delay: 1.7s;
  18. -moz-animation-delay: 1.7s;
  19. animation-delay: 1.7s;
  20. }
  21.  
  22. .three {
  23. -webkit-animation-delay: 2.3s;
  24. -moz-animation-delay: 2.3s;
  25. animation-delay: 2.3s;
  26. }
  27.  
  28. .four {
  29. -webkit-animation-delay: 3.3s;
  30. -moz-animation-delay: 3.3s;
  31. animation-delay: 3.3s;
  32. }
  33.  
  34. /*=== Animations start here ===*/
  35. /*=== FADE IN ===*/
  36. @-webkit-keyframes fadeIn {
  37. from {
  38. opacity: 0;
  39. }
  40.  
  41. to {
  42. opacity: 1;
  43. }
  44. }
  45. @keyframes fadeIn {
  46. from {
  47. opacity: 0;
  48. }
  49.  
  50. to {
  51. opacity: 1;
  52. }
  53. }
  54.  
  55. .fadeIn {
  56. -webkit-animation-name: fadeIn;
  57. animation-name: fadeIn;
  58. }
  59.  
  60.  
  61. /*=== FADE IN DOWN ===*/
  62. @-webkit-keyframes fadeInDown {
  63. from {
  64. opacity: 0;
  65. -webkit-transform: translate3d(0, -100%, 0);
  66. transform: translate3d(0, -100%, 0);
  67. }
  68.  
  69. to {
  70. opacity: 1;
  71. -webkit-transform: none;
  72. transform: none;
  73. }
  74. }
  75. @keyframes fadeInDown {
  76. from {
  77. opacity: 0;
  78. -webkit-transform: translate3d(0, -100%, 0);
  79. transform: translate3d(0, -100%, 0);
  80. }
  81.  
  82. to {
  83. opacity: 1;
  84. -webkit-transform: none;
  85. transform: none;
  86. }
  87. }
  88.  
  89. .fadeInDown {
  90. -webkit-animation-name: fadeInDown;
  91. animation-name: fadeInDown;
  92. }
  93.  
  94. /*==== FADE IN UP ===*/
  95. @-webkit-keyframes fadeInUp {
  96. from {
  97. opacity: 0;
  98. -webkit-transform: translate3d(0, 100%, 0);
  99. transform: translate3d(0, 100%, 0);
  100. }
  101.  
  102. to {
  103. opacity: 1;
  104. -webkit-transform: none;
  105. transform: none;
  106. }
  107. }
  108. @keyframes fadeInUp {
  109. from {
  110. opacity: 0;
  111. -webkit-transform: translate3d(0, 100%, 0);
  112. transform: translate3d(0, 100%, 0);
  113. }
  114.  
  115. to {
  116. opacity: 1;
  117. -webkit-transform: none;
  118. transform: none;
  119. }
  120. }
  121.  
  122. .fadeInUp {
  123. -webkit-animation-name: fadeInUp;
  124. animation-name: fadeInUp;
  125. }
  126.  
  127. /*=== FADE IN LEFT ===*/
  128. @-webkit-keyframes fadeInLeft {
  129. from {
  130. opacity: 0;
  131. -webkit-transform: translate3d(-100%, 0, 0);
  132. transform: translate3d(-100%, 0, 0);
  133. }
  134.  
  135. to {
  136. opacity: 1;
  137. -webkit-transform: none;
  138. transform: none;
  139. }
  140. }
  141. @keyframes fadeInLeft {
  142. from {
  143. opacity: 0;
  144. -webkit-transform: translate3d(-100%, 0, 0);
  145. transform: translate3d(-100%, 0, 0);
  146. }
  147.  
  148. to {
  149. opacity: 1;
  150. -webkit-transform: none;
  151. transform: none;
  152. }
  153. }
  154.  
  155. .fadeInLeft {
  156. -webkit-animation-name: fadeInLeft;
  157. animation-name: fadeInLeft;
  158. }
  159.  
  160.  
  161. /*==== FADE IN RIGHT ===*/
  162. @-webkit-keyframes fadeInRight {
  163. from {
  164. opacity: 0;
  165. -webkit-transform: translate3d(100%, 0, 0);
  166. transform: translate3d(100%, 0, 0);
  167. }
  168.  
  169. to {
  170. opacity: 1;
  171. -webkit-transform: none;
  172. transform: none;
  173. }
  174. }
  175. @keyframes fadeInRight {
  176. from {
  177. opacity: 0;
  178. -webkit-transform: translate3d(100%, 0, 0);
  179. transform: translate3d(100%, 0, 0);
  180. }
  181.  
  182. to {
  183. opacity: 1;
  184. -webkit-transform: none;
  185. transform: none;
  186. }
  187. }
  188.  
  189. .fadeInRight {
  190. -webkit-animation-name: fadeInRight;
  191. animation-name: fadeInRight;
  192. }
Demo

沒有留言:

技術提供:Blogger.