CSS3不同样式的loading效果

女爷i 2023-06-23 09:56 70阅读 0赞

效果如下:

20190726210235728.gif

各种炫酷动画可参考网站:https://www.html5tricks.com/tag/loading动画/

html代码

加载中…

这里为了减少代码量,并没有做兼容性处理,一般我们需要在上述代码animation、animation-delay、keyframes前加入-webkit-在写一次样式。

上面代码中宽高等都是用的em作为单位,这个的好处在于可以用font-size来控制其大小。

1.第一个动画的实现

2.第二个动画的实现

  1. body {
  2. background: #56b4ab;
  3. }
  4. .loader,
  5. .loader:before,
  6. .loader:after {
  7. border-radius: 50%;
  8. }
  9. .loader:before,
  10. .loader:after {
  11. position: absolute;
  12. top: -0.1em;
  13. content: '';
  14. width: 5.2em;
  15. height: 10.2em;
  16. background: #56b4ab;
  17. }
  18. .loader {
  19. font-size: 11px;
  20. text-indent: -99999em;
  21. margin: 30% auto;
  22. position: relative;
  23. width: 10em;
  24. height: 10em;
  25. box-shadow: inset 0 0 0 1em #FFF;
  26. }
  27. .loader:before {
  28. border-radius: 10.2em 0 0 10.2em;
  29. left: -0.1em;
  30. /* 设置旋转元素的基点位置 */
  31. transform-origin: 5.2em 5.1em;
  32. /*
  33. * load2:执行的动画名
  34. * 2s:执行2秒
  35. * infinite:执行无限次
  36. * 1.5s:延时1.5秒
  37. */
  38. animation: load2 2s infinite 1.5s;
  39. }
  40. .loader:after {
  41. border-radius: 0 10.2em 10.2em 0;
  42. left: 5.1em;
  43. transform-origin: 0px 5.1em;
  44. animation: load2 2s infinite;
  45. }
  46. @keyframes load2 {
  47. 0% {
  48. transform: rotate(0deg);
  49. }
  50. 100% {
  51. transform: rotate(360deg);
  52. }
  53. }

这个动画主要利用了旋转和颜色遮挡来实现动画效果。

3.第三个动画的实现

  1. body{
  2. background: #56b4ab;
  3. }
  4. .loader {
  5. font-size: 10px;
  6. margin: 30% auto;
  7. text-indent: -9999em;
  8. width: 11em;
  9. height: 11em;
  10. border-radius: 50%;
  11. /* 线性渐变,从左到右,从白色到透明,0%代表起点和100%是终点 */
  12. background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  13. position: relative;
  14. animation: load3 1.4s infinite linear;
  15. }
  16. .loader:before,
  17. .loader:after{
  18. content: '';
  19. position: absolute;
  20. top: 0;
  21. left: 0;
  22. }
  23. .loader:before {
  24. width: 50%;
  25. height: 50%;
  26. background: #FFF;
  27. border-radius: 100% 0 0 0;
  28. }
  29. .loader:after {
  30. background: #56b4ab;
  31. width: 75%;
  32. height: 75%;
  33. border-radius: 50%;
  34. margin: auto;
  35. bottom: 0;
  36. right: 0;
  37. }
  38. @keyframes load3 {
  39. 0% {
  40. transform: rotate(0deg);
  41. }
  42. 100% {
  43. transform: rotate(360deg);
  44. }
  45. }

实现:线性渐变+颜色遮挡+旋转

4.第四个动画的实现

  1. body{
  2. background: #56b4ab;
  3. }
  4. .loader {
  5. font-size: 20px;
  6. margin: 45% auto;
  7. width: 1em;
  8. height: 1em;
  9. border-radius: 50%;
  10. position: relative;
  11. text-indent: -9999em;
  12. /* liner:规定以相同速度开始至结束的过渡效果*/
  13. animation: load4 1.3s infinite linear;
  14. }
  15. @keyframes load4 {
  16. 0%,
  17. 100% {
  18. box-shadow:
  19. 0em -3em 0em 0.2em #ffffff,
  20. 2em -2em 0 0em #ffffff,
  21. 3em 0em 0 -0.5em #ffffff,
  22. 2em 2em 0 -0.5em #ffffff,
  23. 0em 3em 0 -0.5em #ffffff,
  24. -2em 2em 0 -0.5em #ffffff,
  25. -3em 0em 0 -0.5em #ffffff,
  26. -2em -2em 0 0em #ffffff;
  27. }
  28. 12.5% {
  29. box-shadow:
  30. 0em -3em 0em 0em #ffffff,
  31. 2em -2em 0 0.2em #ffffff,
  32. 3em 0em 0 0em #ffffff,
  33. 2em 2em 0 -0.5em #ffffff,
  34. 0em 3em 0 -0.5em #ffffff,
  35. -2em 2em 0 -0.5em #ffffff,
  36. -3em 0em 0 -0.5em #ffffff,
  37. -2em -2em 0 -0.5em #ffffff;
  38. }
  39. 25% {
  40. box-shadow:
  41. 0em -3em 0em -0.5em #ffffff,
  42. 2em -2em 0 0em #ffffff,
  43. 3em 0em 0 0.2em #ffffff,
  44. 2em 2em 0 0em #ffffff,
  45. 0em 3em 0 -0.5em #ffffff,
  46. -2em 2em 0 -0.5em #ffffff,
  47. -3em 0em 0 -0.5em #ffffff,
  48. -2em -2em 0 -0.5em #ffffff;
  49. }
  50. 37.5% {
  51. box-shadow:
  52. 0em -3em 0em -0.5em #ffffff,
  53. 2em -2em 0 -0.5em #ffffff,
  54. 3em 0em 0 0em #ffffff,
  55. 2em 2em 0 0.2em #ffffff,
  56. 0em 3em 0 0em #ffffff,
  57. -2em 2em 0 -0.5em #ffffff,
  58. -3em 0em 0 -0.5em #ffffff,
  59. -2em -2em 0 -0.5em #ffffff;
  60. }
  61. 50% {
  62. box-shadow:
  63. 0em -3em 0em -0.5em #ffffff,
  64. 2em -2em 0 -0.5em #ffffff,
  65. 3em 0em 0 -0.5em #ffffff,
  66. 2em 2em 0 0em #ffffff,
  67. 0em 3em 0 0.2em #ffffff,
  68. -2em 2em 0 0em #ffffff,
  69. -3em 0em 0 -0.5em #ffffff,
  70. -2em -2em 0 -0.5em #ffffff;
  71. }
  72. 62.5% {
  73. box-shadow:
  74. 0em -3em 0em -0.5em #ffffff,
  75. 2em -2em 0 -0.5em #ffffff,
  76. 3em 0em 0 -0.5em #ffffff,
  77. 2em 2em 0 -0.5em #ffffff,
  78. 0em 3em 0 0em #ffffff,
  79. -2em 2em 0 0.2em #ffffff,
  80. -3em 0em 0 0em #ffffff,
  81. -2em -2em 0 -0.5em #ffffff;
  82. }
  83. 75% {
  84. box-shadow:
  85. 0em -3em 0em -0.5em #ffffff,
  86. 2em -2em 0 -0.5em #ffffff,
  87. 3em 0em 0 -0.5em #ffffff,
  88. 2em 2em 0 -0.5em #ffffff,
  89. 0em 3em 0 -0.5em #ffffff,
  90. -2em 2em 0 0em #ffffff,
  91. -3em 0em 0 0.2em #ffffff,
  92. -2em -2em 0 0em #ffffff;
  93. }
  94. 87.5% {
  95. box-shadow:
  96. 0em -3em 0em 0em #ffffff,
  97. 2em -2em 0 -0.5em #ffffff,
  98. 3em 0em 0 -0.5em #ffffff,
  99. 2em 2em 0 -0.5em #ffffff,
  100. 0em 3em 0 -0.5em #ffffff,
  101. -2em 2em 0 0em #ffffff,
  102. -3em 0em 0 0em #ffffff,
  103. -2em -2em 0 0.2em #ffffff;
  104. }
  105. }

20191229112121499.png

想要整理更多的碎片知识,扫码关注下面的公众号,让我们在哪里接着唠!

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1ZWh1ODM3NzY5NDc0_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读