这是一款使用纯CSS3来制作的Windows phone loading加载动画特效。该loading动画特效使用CSS3 animation属性,通过设置不同的延迟时间来达到loading动画的效果。
使用方法
HTML结构
该loading动画特效使用一组<span>
元素来制作loading指示器的小圆点。
<span class="l-1"></span> <span class="l-2"></span> <span class="l-3"></span> <span class="l-4"></span> <span class="l-5"></span> <span class="l-6"></span>
CSS样式
在CSS样式中,通过span[class*="l-"]
选择器来选择所有的loading圆点。它们被显示为inline-block
,并制作为圆形。每一个小圆点都使用指定贝兹曲线的过渡动画,同时还指定了它们的animation-fill-mode
为both
。animation-fill-mode
属性用于指定在animation
动画之外的时间里动画如何执行。它的取值有:none
,forwards
,backwards
和both
。
forwards
属性会在animation
动画结束之后继续执行最后一次迭代的动画。backwards
属性会在animation
动画开始之前执行第一次迭代的动画。both
表示的是forwards
属性和backwards
属性的组合。
span[class*="l-"] { height: 4px; width: 4px; background: #000; display: inline-block; margin: 12px 2px; border-radius: 100%; -webkit-border-radius: 100%; -moz-border-radius: 100%; -webkit-animation: loader 4s infinite; -webkit-animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415); -webkit-animation-fill-mode: both; -moz-animation: loader 4s infinite; -moz-animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415); -moz-animation-fill-mode: both; -ms-animation: loader 4s infinite; -ms-animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415); -ms-animation-fill-mode: both; animation: loader 4s infinite; animation-timing-function: cubic-bezier(0.030, 0.615, 0.995, 0.415); animation-fill-mode: both; } @-webkit-keyframes loader { 0% {-webkit-transform: translateX(-30px); opacity: 0;} 25% {opacity: 1;} 50% {-webkit-transform: translateX(30px); opacity: 0;} 100% {opacity: 0;} } @-moz-keyframes loader { 0% {-moz-transform: translateX(-30px); opacity: 0;} 25% {opacity: 1;} 50% {-moz-transform: translateX(30px); opacity: 0;} 100% {opacity: 0;} } @-keyframes loader { 0% {-transform: translateX(-30px); opacity: 0;} 25% {opacity: 1;} 50% {-transform: translateX(30px); opacity: 0;} 100% {opacity: 0;} } @-ms-keyframes loader { 0% {-ms-transform: translateX(-30px); opacity: 0;} 25% {opacity: 1;} 50% {-ms-transform: translateX(30px); opacity: 0;} 100% {opacity: 0;} }
最后为每一个小圆点设置不同的动画延迟时间。
span.l-1 {-webkit-animation-delay: 1s;animation-delay: 1s;-ms-animation-delay: 1s;-moz-animation-delay: 1s;} span.l-2 {-webkit-animation-delay: 0.8s;animation-delay: 0.8s;-ms-animation-delay: 0.8s;-moz-animation-delay: 0.8s;} span.l-3 {-webkit-animation-delay: 0.6s;animation-delay: 0.6s;-ms-animation-delay: 0.6s;-moz-animation-delay: 0.6s;} span.l-4 {-webkit-animation-delay: 0.4s;animation-delay: 0.4s;-ms-animation-delay: 0.4s;-moz-animation-delay: 0.4s;} span.l-5 {-webkit-animation-delay: 0.2s;animation-delay: 0.2s;-ms-animation-delay: 0.2s;-moz-animation-delay: 0.2s;} span.l-6 {-webkit-animation-delay: 0;animation-delay: 0;-ms-animation-delay: 0;-moz-animation-delay: 0;}