CSS循环一个动画

前端之家收集整理的这篇文章主要介绍了CSS循环一个动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@我试图学习HTML和CSS,但我遇到了一个问题:
  1. <style style="text/css">
  2. div.slide-slow {
  3. width: 100%;
  4. overflow: hidden;
  5. }
  6.  
  7. div.slide-slow div.inner {
  8. animation: slide-slow 30s;
  9. margin-top: 0%;
  10. }
  11.  
  12. @keyframes slide-slow {
  13. from {
  14. margin-left: 100%;
  15. }
  16.  
  17. to {
  18. margin-left: 0%;
  19. }
  20. }
  21. </style>
  22.  
  23. <div class="slide-slow">
  24. <div class="inner">
  25. <img src="http://www.html.am/images/html-codes/marquees/fish-swimming.gif" alt="Swimming fish">
  26. </div>
  27. </div>

我想让这个CSS循环,不只是停止时,它完成。是否有可能使一个CSS函数循环?

解决方法

使用 animation-iteration-count: infinite.使用数字值限制循环。
  1. <style style="text/css">
  2. div.slide-slow {
  3. width: 100%;
  4. overflow: hidden;
  5. }
  6. div.slide-slow div.inner {
  7. animation: slide-slow 3s;
  8. margin-top: 0%;
  9. animation-iteration-count: infinite;
  10. }
  11. @keyframes slide-slow {
  12. from {
  13. margin-left: 100%;
  14. }
  15. to {
  16. margin-left: 0%;
  17. }
  18. }
  19. </style>
  20.  
  21. <div class="slide-slow">
  22. <div class="inner">
  23. <img src="http://www.html.am/images/html-codes/marquees/fish-swimming.gif" alt="Swimming fish">
  24. </div>
  25. </div>

附加:对于Ismael的建议,使用翻转效果来实现来回动画,你可以使用rotateY(180deg).相反,在一个静态的地方/位置翻转,最好是旋转鱼,如同它与水的流动一起移动电流向后(正常动画)。 ease-in-out可以帮助保持定时功能更好。我已经使用宽度:40vw旋转功能稍微响应/视图端口依赖和不旋转太多偏移。

使用边距和宽度值来实现合适的动画。

  1. <style style="text/css">
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. }
  6. div.slide-slow {
  7. width: 100%;
  8. overflow: hidden;
  9. }
  10. div.slide-slow div.inner {
  11. animation: slide-slow 15s;
  12. margin-top: 0%;
  13. animation-iteration-count: infinite;
  14. animation-delay: 0s;
  15. width: 40vw;
  16. animation-fill-mode: forwards;
  17. animation-timing-function: ease-in-out;
  18. }
  19. @keyframes slide-slow {
  20. 0% {
  21. margin-left: 85%;
  22. }
  23. 25% {
  24. margin-left: 20%;
  25. transform: rotateY(0deg);
  26. }
  27. 50% {
  28. margin-left: -25%;
  29. transform: rotateY(180deg);
  30. transform-origin: center center;
  31. }
  32. 75% {
  33. margin-left: 50%;
  34. transform: rotateY(180deg);
  35. }
  36. 100% {
  37. margin-left: 85%;
  38. transform: rotateY(0deg);
  39. }
  40. }
  41. </style>
  42.  
  43. <div class="slide-slow">
  44. <div class="inner">
  45. <img src="http://i.stack.imgur.com/nJAsS.gif" alt="Swimming fish">
  46. </div>
  47. </div>

(图像源:http://www.html.am/images/html-codes/marquees/fish-swimming.gif)

猜你在找的CSS相关文章