其他代码

CSS3炫酷预加载Loading指示器动画特效

阿里云


这是一组效果非常酷的纯 CSS3 炫酷预加载 Loading 指示器动画特效。这组 loading 指示器共 6 种效果,都是使用:before 和:after 伪元素,以及 CSS 帧动画来完成各种不同的预加载指示器动画。

音频波形 Loading 动画


使用 5 个空的元素,每一个代表一条波形柱子。

也想出现在这里?联系我们
创客主机
  1. <div id="preloader_1">
  2.     <span></span>
  3.     <span></span>
  4.     <span></span>
  5.     <span></span>
  6.     <span></span>
  7. </div>

音频波形 Loading 动画效果通过使每一条音频波形柱子的高度从 5 像素变化到 30 像素来完成。每一个 span 元素都被沿 Y 轴向下移动 15 像素,使动画动中心开始。

  1. #preloader_1{
  2.     position:relative;
  3. }
  4. #preloader_1 span{
  5.     display:block;
  6.     bottom:0px;
  7.     width: 9px;
  8.     height: 5px;
  9.     background:#9b59b6;
  10.     position:absolute;
  11.     animation: preloader_1 1.5s  infinite ease-in-out;
  12. }
  13.  
  14. #preloader_1 span:nth-child(2){
  15. left:11px;
  16. animation-delay: .2s;
  17.  
  18. }
  19. #preloader_1 span:nth-child(3){
  20. left:22px;
  21. animation-delay: .4s;
  22. }
  23. #preloader_1 span:nth-child(4){
  24. left:33px;
  25. animation-delay: .6s;
  26. }
  27. #preloader_1 span:nth-child(5){
  28. left:44px;
  29. animation-delay: .8s;
  30. }
  31. @keyframes preloader_1 {
  32.     0% {height:5px;transform:translateY(0px);background:#9b59b6;}
  33.     25% {height:30px;transform:translateY(15px);background:#3498db;}
  34.     50% {height:5px;transform:translateY(0px);background:#9b59b6;}
  35.     100% {height:5px;transform:translateY(0px);background:#9b59b6;}
  36. }

通过分别为每一个 span 元素设置 0.2 秒的 animation-delay 动画延迟时间,使它们依次产生高度变化的动画效果。

圆形变矩形 Loading 动画


圆形变矩形 Loading 动画使用 4 个空的元素,每一个代表一个圆形/矩形。

  1. <div id="preloader_2">
  2.     <span></span>
  3.     <span></span>
  4.     <span></span>
  5.     <span></span>
  6. </div>

该 loading 指示器动画通过修改 border-radius 属性来实现。

  1. #preloader_2{
  2. position: relative;
  3. left: 50%;
  4. width: 40px;
  5. height: 40px;
  6. }
  7. #preloader_2 span{
  8.     display:block;
  9.     bottom:0px;
  10.     width: 20px;
  11.     height: 20px;
  12.     background:#9b59b6;
  13.     position:absolute;
  14. }
  15. #preloader_2 span:nth-child(1){
  16. animation: preloader_2_1 1.5s infinite ease-in-out;
  17. }
  18. #preloader_2 span:nth-child(2){
  19. left:20px;
  20. animation: preloader_2_2 1.5s infinite ease-in-out;
  21.  
  22. }
  23. #preloader_2 span:nth-child(3){
  24. top:0px;
  25. animation: preloader_2_3 1.5s infinite ease-in-out;
  26. }
  27. #preloader_2 span:nth-child(4){
  28. top:0px;
  29. left:20px;
  30. animation: preloader_2_4 1.5s infinite ease-in-out;
  31. }
  32.  
  33. @-keyframes preloader_2_1 {
  34.   0% {-transform: translateX(0px) translateY(0px)  rotate(0deg); border-radius:0px;}
  35.   50% {-transform: translateX(-20px) translateY(-10px) rotate(-180deg); border-radius:20px;background:#3498db;}
  36.   80% {-transform: translateX(0px) translateY(0px) rotate(-360deg); border-radius:0px;}
  37.   100% {-transform: translateX(0px) translateY(0px) rotate(-360deg); border-radius:0px;}
  38. }
  39. @-keyframes preloader_2_2 {
  40.   0% {-transform: translateX(0px) translateY(0px)  rotate(0deg);border-radius:0px;}
  41.   50% {-transform: translateX(20px) translateY(-10px) rotate(180deg);border-radius:20px;background:#f1c40f;}
  42.   80% {-transform: translateX(0px) translateY(0px) rotate(360deg);border-radius:0px;}
  43.   100% {-transform: translateX(0px) translateY(0px) rotate(360deg);border-radius:0px;}
  44. }
  45. @-keyframes preloader_2_3 {
  46.   0% {-transform: translateX(0px) translateY(0px)  rotate(0deg);border-radius:0px;}
  47.   50% {-transform: translateX(-20px) translateY(10px) rotate(-180deg); border-radius:20px;background:#2ecc71;}
  48.   80% {-transform: translateX(0px) translateY(0px) rotate(-360deg);border-radius:0px;}
  49.   100% {-transform: translateX(0px) translateY(0px) rotate(-360deg); border-radius:0px;}
  50. }
  51.  
  52.  
  53. @-keyframes preloader_2_4 {
  54.   0% {-transform: translateX(0px) translateY(0px)  rotate(0deg); border-radius:0px;}
  55.   50% {-transform: translateX(20px) translateY(10px) rotate(180deg); border-radius:20px;background:#e74c3c;}
  56.   80% {-transform: translateX(0px) translateY(0px) rotate(360deg); border-radius:0px;}
  57.   100% {-transform: translateX(0px) translateY(0px) rotate(360deg);border-radius:0px;}
  58. }

交叉图形变换 Loading 动画


该 loading 动画使用 div 元素的:before 和:after 为元素来制作。圆形变方形的动画通用是通过修改 border-radius 属性来实现。

  1. <div id="preloader_3"></div>

CSS 样式

  1. #preloader_3{
  2.     position:relative;
  3. }
  4. #preloader_3:before{
  5.     width:20px;
  6.     height:20px;
  7.     border-radius:20px;
  8.     background:blue;
  9.     content:'';
  10.     position:absolute;
  11.     background:#9b59b6;
  12.     animation: preloader_3_before 1.5s infinite ease-in-out;
  13. }
  14.  
  15. #preloader_3:after{
  16.     width:20px;
  17.     height:20px;
  18.     border-radius:20px;
  19.     background:blue;
  20.     content:'';
  21.     position:absolute;
  22.     background:#2ecc71;
  23.     left:22px;
  24.     animation: preloader_3_after 1.5s infinite ease-in-out;
  25. }
  26.  
  27. @keyframes preloader_3_before {
  28.     0% {transform: translateX(0px) rotate(0deg)}
  29.     50% {transform: translateX(50px) scale(1.2) rotate(260deg); background:#2ecc71;border-radius:0px;}
  30.       100% {transform: translateX(0px) rotate(0deg)}
  31. }
  32. @keyframes preloader_3_after {
  33.     0% {transform: translateX(0px)}
  34.     50% {transform: translateX(-50px) scale(1.2) rotate(-260deg);background:#9b59b6;border-radius:0px;}
  35.     100% {transform: translateX(0px)}
  36. }

蛇形 Loading 动画


该 loading 动画使用 div 元素的:before 和:after 为元素来制作。圆形变方形的动画通用是通过修改 border-radius 属性来实现。

  1. <div id="preloader_4">
  2.     <span></span>
  3.     <span></span>
  4.     <span></span>
  5.     <span></span>
  6.     <span></span>
  7. </div>

该动画通过修改每一个 span 元素的 Y 轴位置,使它们下移 10 个像素,并使它们的颜色从蓝色变为黄色。阴影效果则是修改 box-shadow 的尺寸来完成。

  1. #preloader_4{
  2.     position:relative;
  3. }
  4. #preloader_4 span{
  5.     position:absolute;
  6.     width:20px;
  7.     height:20px;
  8.     background:#3498db;
  9.     opacity:0.5;
  10. border-radius:20px;
  11.     -animation: preloader_4 1s infinite ease-in-out;
  12.  
  13. }
  14. #preloader_4 span:nth-child(2){
  15.     left:20px;
  16.     animation-delay: .2s;
  17. }
  18. #preloader_4 span:nth-child(3){
  19.     left:40px;
  20.     animation-delay: .4s;
  21. }
  22. #preloader_4 span:nth-child(4){
  23.     left:60px;
  24.     animation-delay: .6s;
  25. }
  26. #preloader_4 span:nth-child(5){
  27.     left:80px;
  28.     animation-delay: .8s;
  29. }
  30. @keyframes preloader_4 {
  31.     0% {
  32.       opacity: 0.3; 
  33.       transform:translateY(0px);    
  34.       box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);}
  35.     50% {
  36.       opacity: 1; 
  37.       transform: translateY(-10px); 
  38.       background:#f1c40f;  
  39.       box-shadow: 0px 20px 3px rgba(0, 0, 0, 0.05);}
  40.     100%  {
  41.       opacity: 0.3; 
  42.       transform:translateY(0px); 
  43.       box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);}
  44. }

旋转轮盘 Loading 动画


该 loading 动画使用 div 元素来制作中心的圆形,并使用 div 元素的:after 伪元素来制作两条旋转线效果。

  1. <div id="preloader_5"></div>

两条旋转线使用:after 伪元素来制作,通过给它设置 50 像素的顶部和底部 border-radius 俩创建这两条线。动画效果添加在 div 元素上,修改它的颜色以及通过 transform: rotate()来使它进行旋转。

  1. #preloader5{
  2.     position:relative;
  3.     width:30px;
  4.     height:30px;
  5.     background:#3498db;
  6.     border-radius:50px;
  7.     animation: preloader_5 1.5s infinite linear;
  8. }
  9. #preloader5:after{
  10.     position:absolute;
  11.     width:50px;
  12.     height:50px;
  13.     border-top:10px solid #9b59b6;
  14.     border-bottom:10px solid #9b59b6;
  15.     border-left:10px solid transparent;
  16.     border-right:10px solid transparent;
  17.     border-radius:50px;
  18.     content:'';
  19.     top:-20px;
  20.     left:-20px;
  21.     animation: preloader_5_after 1.5s infinite linear;
  22. }
  23. @keyframes preloader_5 {
  24.     0% {transform: rotate(0deg);}
  25.     50% {transform: rotate(180deg);background:#2ecc71;}
  26.     100% {transform: rotate(360deg);}
  27. }
  28. @keyframes preloader_5_after {
  29.     0% {border-top:10px solid #9b59b6;border-bottom:10px solid #9b59b6;}
  30.     50% {border-top:10px solid #3498db;border-bottom:10px solid #3498db;}
  31.     100% {border-top:10px solid #9b59b6;border-bottom:10px solid #9b59b6;}
  32. }

windows 标志 Loading 动画


每一个 span 代表一个方块。

  1. <div id="preloader_6">
  2.     <span></span>
  3.     <span></span>
  4.     <span></span>
  5.     <span></span>
  6. </div>

所有的方块以网格进行布局。动画添加在主 div 元素上,使它产生旋转。另外 i 一个动画是使各个 span 元素不断的从 100%缩放到 50%。并通过 animation-delay 来控制各个 span 的动画延迟时间。

  1. #preloader_6{
  2.     position:relative;
  3.     width: 42px;
  4.     height: 42px;
  5.     animation: preloader_6 5s infinite linear;
  6. }
  7. #preloader_6 span{
  8.     width:20px;
  9.     height:20px;
  10.     position:absolute;
  11.     background:red;
  12.     display:block;
  13.     animation: preloader_6_span 1s infinite linear;
  14. }
  15. #preloader_6 span:nth-child(1){
  16.   background:#2ecc71;
  17. }
  18. #preloader_6 span:nth-child(2){
  19.   left:22px;
  20.   background:#9b59b6;
  21.   animation-delay: .2s;
  22. }
  23. #preloader_6 span:nth-child(3){
  24.   top:22px;
  25.   background:#3498db;
  26.   animation-delay: .4s;
  27. }
  28. #preloader_6 span:nth-child(4){
  29.   top:22px;
  30.   left:22px;
  31.   background:#f1c40f;
  32.   animation-delay: .6s;
  33. }
  34. @keyframes preloader_6 {
  35.     from {-ms-transform: rotate(0deg);}
  36.     to {-ms-transform: rotate(360deg);}
  37. }
  38. @keyframes preloader_6_span {
  39.    0% { transform:scale(1); }
  40.    50% { transform:scale(0.5); }
  41.    100% { transform:scale(1); }
  42. }

CSS3 炫酷预加载 Loading 指示器动画特效

已有 447 人购买
  • c77l
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!