css实现loading动画,前端loading效果
超文本标记语言
div class=spinner/divCSS。spinner { width:40px;高度:40px背景色:# 333;边距:100像素自动;-WebKit-动画:sk-旋转平面1.2s无限渐出;动画:sk-旋转平面1.2s无限渐出;} @-WebKit-关键帧sk-旋转平面{ 0% {-WebKit-transform:perspective(120 px)} 50% {-WebKit-transform:perspective(120 px)rotateY(180 deg)} 100% {-WebKit-transform:perspective(120 px)rotateY(180 deg)} @关键帧sk-rotateplane { 0% { transform:perspective(120 px)rotateX(0 deg)-rotateY(0 deg)-WebKit-transform:perspective-WebKit-transform:perspective(120 px)rotateX(-180.1 deg)rotateY(0 deg)} 100% { transform:perspective(120 px)rotateX(-180 deg)rotateY(-179.9 deg);-WebKit-transform:perspective(120 px)rotateX(-180度)rotateY(-179.9度);}}解析:定义一个差异元素,设置边长为40px背景白色的正方形,然后设置循环翻转动画实现该加载效果动画
远景属性定义三维(三维的缩写)元素距视图的距离
超文本标记语言
div class= sk-chase div class= sk-chase-dot /div div class= sk-chase-dot /div div class= sk-chase-dot /div div class= sk-chase-dot /div。sk-chase { width:40px;高度:40px位置:相对;动画:sk-chase 2.5s无限线性双双;}.sk-chase-dot {宽度:100%;身高:100%;位置:绝对;左:0;top:0;动画:sk-chase-dot 2.0s无限进出均可;}.sk-chase-dot:在{内容:“”之前;显示:块;宽度:25%;身高:25%;背景色:# fff边框半径:100%;动画:sk-chase-dot-在2.0s之前无限渐进渐出都有}。sk-chase-dot:n-child(1){ animation-delay:-1.1s;}.sk-chase-dot:n-child(2){ animation-delay:-1.0s;}.sk-chase-dot:n-child(3){ animation-delay:-0.9s;}.sk-chase-dot:n-child(4){ animation-delay:-0.8s;}.sk-chase-dot:n-child(5){ animation-delay:-0.7s;}.sk-chase-dot:n-child(6){ animation-delay:-0.6s;}.sk-chase-dot:n子代(1):之前{动画-延迟:-1.1s;}.sk-chase-dot:n子(2):之前{动画延迟:-1.0s;}.sk-chase-dot:n-child(3):之前{动画-延迟:-0.9s;}.sk-chase-dot:n-child(4):之前{动画-延迟:-0.8s;}.sk-chase-dot:n-child(5):之前{动画-延迟:-0.7s;}.sk-chase-dot:n子(6):之前{动画-延迟:-0.6s;} @关键帧sk-chase { 100% {变换:旋转(360);} } @关键帧sk-chase-dot { 80%,100% {变换:旋转(360);} } @关键帧sk-chase-dot-before { 50% { transform:scale(0.4);} 100%,0% { transform:scale(1.0);} }解析:定义一个父元素div,内含六个白色实心圆点,添加旋转动画,通过设置不同的延迟时间来达到依次出现的效果
超文本标记语言
div class= spinner div class= double-bounce 1 /div div class= double-bounce 2 /div/div CSS。spinner { width:40px;高度:40px位置:相对;边距:100像素自动;}.双弹跳1,双弹跳2 {宽度:100%;身高:100%;边界半径:50%;背景色:# 333;不透明度:0.6;位置:绝对;top:0;左:0;-网络工具包-动画:sk-bounce 2.0s无限渐出;动画:sk-bounce 2.0s无限渐出;}.双弹跳2 {-WebKit-动画-延迟:-1.0s;动画-延迟:-1.0s;} @-网络工具包-关键帧sk-bounce { 0%,100% {-WebKit-transform:scale(0.0)} 50% {-WebKit-transform:scale(1.0)} @关键帧sk-bounce { 0%,100% { transform:scale(0.0);-WebKit-transform:scale(0.0);} 50% {变换:缩放(1.0);-WebKit-transform:scale(1.0);}}解析:两个子元素差异实现半透明的圆形,设置绝对定位重叠在一起,然后设置相同的动画通过不同的延迟时间交替放大缩小。
超文本标记语言
spinner div class= rect 1 /div div class= rect 2 /div div class= rect 3 /div div class= rect 4 /div div class= rect 5 /div/div CSS。微调{ margin:100 px auto;宽度:50px高度:40px文本对齐:居中;字体大小:10px}。spinner div { background-color:# 333;身高:100%;宽度:6px显示:内嵌-块;-WebKit-动画:sk-拉伸延迟1.2s无限缓入缓出;动画:sk-拉伸延迟1.2s无限淡入淡出;}.旋转器。rect 2 {-WebKit-animation-delay:-1.1s;动画-延迟:-1.1s;}.旋转器。rect 3 {-WebKit-animation-delay:-1.0s;动画-延迟:-1.0s;}.旋转器。rect 4 {-WebKit-animation-delay:-0.9s;动画-延迟:-0.9s;}.旋转器。rect 5 {-WebKit-animation-delay:-0.8s;动画-延迟:-0.8s;} @-网络工具包-关键帧sk-stretchdelay { 0%,40%,100% {-WebKit-transform:scaleY(0.4)} 20% {-WebKit-transform:scaleY(1.0)} @关键帧sk-stretchdelay { 0%,40%,100% { transform:scaleY(0.4);-WebKit-transform:scaleY(0.4);} 20% { transform:scaleY(1.0);-WebKit-transform:scaleY(1.0);}}解析:在类名为纺纱机元素下有五个差异实现的长方形元素,设置Y轴的缩放,通过不同的延迟时间来达到依次变化的效果。
超文本标记语言
div class= spinner div class= cube 1 /div div class= cube 2 /div/div CSS。立方1,多维数据集2 {背景色:# 333;宽度:15px高度:15px位置:绝对;top:0;左:0;-网络工具包-动画:sk-cubemove 1.8s无限缓入缓出;动画:sk-cubemove 1.8s无限缓入缓出;} .魔方2 {-WebKit-动画-延迟:-0.9s;动画-延迟:-0.9s;} @-WebKit-关键帧sk-cube move { 25% {-WebKit-transform:translateX(42px)旋转(-90度)缩放(0.5)} 50% {-WebKit-transform:translate x(42px)translate y(42px)旋转(-180度)} 75% {-WebKit-transform:translate x(0px)translate y(42px)旋转(-270度)缩放(0.5) } 100% { -webkit-transform:旋转(-30-WebKit-transform:translate x(42px)rotate(-90 deg)scale(0.5);} 50% { transform:平移x(42px)平移y(42px)旋转(-179 deg);-WebKit-transform:translate x(42px)translate y(42px)rotate(-179度);} 50.1% { transform:平移x(42px)平移y(42px)旋转(-180度);-WebKit-transform:translate x(42px)translate y(42px)rotate(-180度);} 75% { transform:平移x(0px)平移y(42px)旋转(-270度)缩放(0.5);-WebKit-transform:translate x(0px)translate y(42px)rotate(-270 deg)scale(0.5);} 100% {变换:旋转(-360度);-WebKit-transform:旋转(-360度);}}解析:两个子元素实现白色的方块,添加动画属性,在X轴和Y轴分别设置移动距离和缩放,通过不同的延迟时间来分离他们,rorate实现围绕中心旋转。
超文本标记语言
div class=spinner/divCSS。spinner { width:40px;高度:40px边距:100像素自动;背景色:# 333;边框半径:100%;-WebKit-动画:sk-横向扩展1.0s无限缓入缓出;动画:sk-横向扩展1.0s无限缓入缓出;} @-WebKit-关键帧sk-向外扩展{ 0% {-WebKit-transform:scale(0)} 100% {-WebKit-transform:scale(1.0);不透明度:0;} } @关键帧sk-scale out { 0% {-WebKit-transform:scale(0);transform:scale(0);} 100% {-WebKit-transform:scale(1.0);变换:缩放(1.0);不透明度:0;}}解析:唯一的差异元素实现白色背景圆点,通过设置缩放和透明度实现呼吸灯的效果。
超文本标记语言
div class= spinner div class= dot1 /div div class= dot2 /div/div CSS。微调{ margin:100 px auto;宽度:40px高度:40px位置:相对;文本对齐:居中;-网络工具包-动画:sk-旋转2.0s无限线性;动画:sk-旋转2.0s无限线性;}.dot1,dot2 {宽度:60%;身高:60%;显示:内嵌-块;位置:绝对;top:0;背景色:# 333;边框半径:100%;-网络工具包-动画:sk-bounce 2.0s无限渐出;动画:sk-bounce 2.0s无限渐出;} .dot 2 { top:auto;底部:0;-网络工具包-动画-延迟:-1.0s;动画-延迟:-1.0s;} @-网络工具包-关键帧sk-rotate { 100% {-WebKit-transform:旋转(360度)} } @关键帧sk-rotate { 100% { transform:rotate(360 deg);-WebKit-transform:旋转(360度)} } @-WebKit-关键帧sk-bounce { 0%,100% {-WebKit-transform:scale(0.0)} 50% {-WebKit-transform:scale(1.0)} @关键帧sk-bounce { 0%,100% { transform:scale(0.0);-WebKit-transform:scale(0.0);} 50% {变换:缩放(1.0);-WebKit-transform:scale(1.0);}}解析:两个实心圆形围绕中心做循环的缩放旋转运动,因为不同的延迟时间来达到它们同一时间呈现相反的表现。
超文本标记语言
spinner div class= bounce 1 /div div class= bounce 2 /div div class= bounce 3 /div/div CSS。spinner { margin:100p x auto 0;宽度:70px文本对齐:居中;}.spinner div { width:18px;高度:18px背景色:# 333;边框半径:100%;显示:内嵌-块;-WebKit-动画:sk-bouncedelay 1.4s无限轻松进出两者;动画:sk-bouncedelay 1.4s无限进出均可;}.旋转器。弹跳1 {-WebKit-动画-延迟:-0.32s;动画-延迟:-0.32秒;}.旋转器。弹跳2 {-WebKit-动画-延迟:-0.16s;动画-延迟:-0.16s;} @-网络工具包-关键帧sk-bouncedelay { 0%,80%,100% {-WebKit-transform:scale(0)} 40% {-WebKit-transform:scale(1.0)} @关键帧sk-bouncedelay { 0%,80%,100% {-WebKit-transform:scale(0);transform:scale(0);} 40% {-WebKit-transform:scale(1.0);变换:缩放(1.0);}}解析:三个实色圆形横向排列,线性动画规模从0到1,通过给它们不同的延迟时间,呈现依次交替的效果。
超文本标记语言
div class= sk-circle div class= sk-circle 1 sk-child /div div class= sk-circle 2 sk-child /div div class= sk-circle 5 sk-child /div div class= sk-circle 6 sk-child /div div class= sk-circle 7 sk-child /div div class= sk-circle 8 sk-child /div。sk-circle { margin:100px auto;宽度:40px高度:40px位置:相对;}.沙王圈sk-child宽度:100%;身高:100%;位置:绝对;左:0;top:0;}.沙王圈sk-儿童:在{内容:""之前;显示:块;边距:0自动;宽度:15%;身高:15%;背景色:# 333;边框半径:100%;-WebKit-动画:sk-circleBounceDelay 1.2s无限两者都缓和;动画:sk-circleBounceDelay 1.2s无限进出均可;}.沙王圈sk-circle2 { -webkit-transform:旋转(30度);-质谱转换:旋转(30度);变换:旋转(30度);}.沙王圈sk-circle3 { -webkit-transform:旋转(60度);-质谱转换:旋转(60度);变换:旋转(60度);}.沙王圈sk-circle4 { -webkit-transform:旋转(90度);-质谱转换:旋转(90度);变换:旋转(90度);}.沙王圈sk-circle5 { -webkit-transform:旋转(120度);-质谱转换:旋转(120度);变换:旋转(120度);}.沙王圈sk-circle6 { -webkit-transform:旋转(150度);-质谱转换:旋转(150度);变换:旋转(150度);}.沙王圈sk-circle7 { -webkit-transform:旋转(180度);-质谱转换:旋转(180度);变换:旋转(180度);}.沙王圈sk-circle8 { -webkit-transform:旋转(210度);-质谱转换:旋转(210度);变换:旋转(210度);}.沙王圈sk-circle9 { -webkit-transform:旋转(240度);-质谱转换:旋转(240度);变换:旋转(240度);}.沙王圈sk-circle10 { -webkit-transform:旋转(270度);-质谱转换:旋转(270度);变换:旋转(270度);}.沙王圈sk-circle11 { -webkit-transform:旋转(300度);-质谱转换:旋转(300度);变换:旋转(300度);}.沙王圈sk-circle12 { -webkit-transform:旋转(330度);-质谱转换:旋转(330度);变换:旋转(330度);}.沙王圈. sk-circle 2:before {-WebKit-animation-delay:-1.1s;动画-延迟:-1.1s;}.沙王圈. sk-circle 3:before {-WebKit-animation-delay:-1s;动画-延迟:-1s;}.沙王圈. sk-circle 4:before {-WebKit-animation-delay:-0.9s;动画-延迟:-0.9s;}.沙王圈. sk-circle 5:before {-WebKit-animation-delay:-0.8s;动画-延迟:-0.8s;}.沙王圈. sk-circle 6:before {-WebKit-animation-delay:-0.7s;动画-延迟:-0.7s;}.沙王圈. sk-circle 7:before {-WebKit-animation-delay:-0.6s;动画-延迟:-0.6s;}.沙王圈. sk-circle 8:before {-WebKit-animation-delay:-0.5s;动画-延迟:-0.5s;}.沙王圈. sk-circle 9:before {-WebKit-animation-delay:-0.4s;动画-延迟:-0.4s;}.沙王圈10 . sk-circle 10:before {-WebKit-animation-delay:-0.3s;动画-延迟:-0.3s;}.沙王圈. sk-circle 11:before {-WebKit-animation-delay:-0.2s;动画-延迟:-0.2s;}.沙王圈. sk-circle 12:before {-WebKit-animation-delay:-0.1s;动画-延迟:-0.1s;} @-WebKit-关键帧sk-circleBounceDelay { 0%,80%,100% {-WebKit-transform:scale(0);transform:scale(0);} 40% {-WebKit-transform:scale(1);变换:缩放(1);} } @关键帧sk-circleBounceDelay { 0%,80%,100% {-WebKit-transform:scale(0);transform:scale(0);} 40% {-WebKit-transform:scale(1);变换:缩放(1);}}解析:整个加载效果由12个圆心组成,设置不同的旋转让它们呈现圆形环绕,然后设置不同的延迟时间,让它们做缩放运动。
超文本标记语言
div class= sk-cube-grid div class= sk-cube sk-cube 1 /div div class= sk-cube sk-cube 2 /div div class= sk-cube sk-cube 3 /div div class= sk-cube 4 /div div class= sk-cube sk-cube 5 /div div class= sk-cube 6 /div div class= sk-cube 7 /div div div class= sk-cube 8 /div div class=。sk-cube-grid { width:40px;高度:40px边距:100像素自动;}.沙王立方体网格sk-cube {宽度:33%;身高:33%;背景色:# 333;浮动:左;-网络工具包-动画:sk-cubegridscaledlay 1.3s无限缓入缓出;动画:sk-cubegridscaledlay 1.3s无限缓入缓出;}.沙王立方体网格sk-cube 1 {-WebKit-animation-delay:0.2s;动画-延迟:0.2s}。沙王立方体网格sk-cube 2 {-WebKit-animation-delay:0.3s;动画-延迟:0.3s}。沙王立方体网格sk-cube 3 {-WebKit-animation-delay:0.4s;动画-延迟:0.4s}。沙王立方体网格sk-cube 4 {-WebKit-animation-delay:0.1s;动画-延迟:0.1s}。沙王立方体网格sk-cube 5 {-WebKit-animation-delay:0.2s;动画-延迟:0.2s}。沙王立方体网格sk-cube 6 {-WebKit-animation-delay:0.3s;动画-延迟:0.3s}。沙王立方体网格sk-cube 7 {-WebKit-动画-延迟:0s;动画-延迟:0s;}.沙王立方体网格sk-cube 8 {-WebKit-animation-delay:0.1s;动画-延迟:0.1s}。沙王立方体网格sk-cube 9 {-WebKit-animation-delay:0.2s;动画-延迟:0.2s } @-WebKit-关键帧sk-cubegridscaleday { 0%,70%,100% {-WebKit-transform:scale 3d(1,1,1);transform: scale3D(1,1,1);} 35% {-WebKit-transform:scale 3d(0,0,1);transform: scale3D(0,0,1);} } @关键帧sk-cubegridscaledlay { 0%,70%,100% {-WebKit-transform:scale 3d(1,1,1);transform: scale3D(1,1,1);} 35% {-WebKit-transform:scale 3d(0,0,1);transform: scale3D(0,0,1);} }解析:九个方块通过格子布局,形成横向纵向分别三块,设置不同的延迟时间让它们做线性三维(三维的缩写)缩放运动。
超文本标记语言
div class= sk-fading-circle div class= sk-circle 1 sk-circle /div div class= sk-circle 2 sk-circle /div div class= sk-circle 5 sk-circle /div div class= sk-circle 6 sk-circle /div div class= sk-circle 7 sk-circle /div div div class= sk-circle 8。sk-fading-circle { margin:100px auto;宽度:40px高度:40px位置:相对;}.护肤精华露衰落-循环sk-circle {宽度:100%;身高:100%;位置:绝对;左:0;top:0;}.护肤精华露衰落-循环sk-circle:在{内容:“”之前;显示:块;边距:0自动;宽度:15%;身高:15%;背景色:# 333;边框半径:100%;-WebKit-动画:sk-circlefadelay 1.2s无限两者都缓和;动画:sk-circlefadelay 1.2s无限缓入缓出都有}。护肤精华露衰落-循环sk-circle2 { -webkit-transform:旋转(30度);-质谱转换:旋转(30度);变换:旋转(30度);}.护肤精华露衰落-循环sk-circle3 { -webkit-transform:旋转(60度);-质谱转换:旋转(60度);变换:旋转(60度);}.护肤精华露衰落-循环sk-circle4 { -webkit-transform:旋转(90度);-质谱转换:旋转(90度);变换:旋转(90度);}.护肤精华露衰落-循环sk-circle5 { -webkit-transform:旋转(120度);-质谱转换:旋转(120度);变换:旋转(120度);}.护肤精华露衰落-循环sk-circle6 { -webkit-transform:旋转(150度);-质谱转换:旋转(150度);变换:旋转(150度);}.护肤精华露衰落-循环sk-circle7 { -webkit-transform:旋转(180度);-质谱转换:旋转(180度);变换:旋转(180度);}.护肤精华露衰落-循环sk-circle8 { -webkit-transform:旋转(210度);-质谱转换:旋转(210度);变换:旋转(210度);}.护肤精华露衰落-循环sk-circle9 { -webkit-transform:旋转(240度);-质谱转换:旋转(240度);变换:旋转(240度);}.护肤精华露衰落-循环sk-circle10 { -webkit-transform:旋转(270度);-质谱转换:旋转(270度);变换:旋转(270度);}.护肤精华露衰落-循环sk-circle11 { -webkit-transform:旋转(300度);-质谱转换:旋转(300度);变换:旋转(300度);}.护肤精华露衰落-循环sk-circle12 { -webkit-transform:旋转(330度);-质谱转换:旋转(330度);变换:旋转(330度);}.护肤精华露衰落-循环. sk-circle 2:before {-WebKit-animation-delay:-1.1s;动画-延迟:-1.1s;}.护肤精华露衰落-循环. sk-circle 3:before {-WebKit-animation-delay:-1s;动画-延迟:-1s;}.护肤精华露衰落-循环. sk-circle 4:before {-WebKit-animation-delay:-0.9s;动画-延迟:-0.9s;}.护肤精华露衰落-循环. sk-circle 5:before {-WebKit-animation-delay:-0.8s;动画-延迟:-0.8s;}.护肤精华露衰落-循环. sk-circle 6:before {-WebKit-animation-delay:-0.7s;动画-延迟:-0.7s;}.护肤精华露衰落-循环. sk-circle 7:before {-WebKit-animation-delay:-0.6s;动画-延迟:-0.6s;}.护肤精华露衰落-循环. sk-circle 8:before {-WebKit-animation-delay:-0.5s;动画-延迟:-0.5s;}.护肤精华露衰落-循环. sk-circle 9:before {-WebKit-animation-delay:-0.4s;动画-延迟:-0.4s;}.护肤精华露衰落-循环10 . sk-circle 10:before {-WebKit-animation-delay:-0.3s;动画-延迟:-0.3s;}.护肤精华露衰落-循环. sk-circle 11:before {-WebKit-animation-delay:-0.2s;动画-延迟:-0.2s;}.护肤精华露衰落-循环. sk-circle 12:before {-WebKit-animation-delay:-0.1s;动画-延迟:-0.1s;} @-WebKit-关键帧sk-circlefadelay { 0%,39%,100% { opacity:0;} 40% {不透明度:1;} } @关键帧sk-circlefadelay { 0%,39%,100% {不透明度:0;} 40% {不透明度:1;} }解析:加载动画由12个实色圆点360度依次摆开,依次做旋转和透明度
的改变。
HTML
<div class="sk-folding-cube"> <div class="sk-cube1 sk-cube"></div> <div class="sk-cube2 sk-cube"></div> <div class="sk-cube4 sk-cube"></div> <div class="sk-cube3 sk-cube"></div></div>CSS
.sk-folding-cube { margin: 20px auto; width: 40px; height: 40px; position: relative; -webkit-transform: rotateZ(45deg); transform: rotateZ(45deg);}.sk-folding-cube .sk-cube { float: left; width: 50%; height: 50%; position: relative; -webkit-transform: scale(1.1); -ms-transform: scale(1.1); transform: scale(1.1); }.sk-folding-cube .sk-cube:before { content: ; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #333; -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both; animation: sk-foldCubeAngle 2.4s infinite linear both; -webkit-transform-origin: 100% 100%; -ms-transform-origin: 100% 100%; transform-origin: 100% 100%;}.sk-folding-cube .sk-cube2 { -webkit-transform: scale(1.1) rotateZ(90deg); transform: scale(1.1) rotateZ(90deg);}.sk-folding-cube .sk-cube3 { -webkit-transform: scale(1.1) rotateZ(180deg); transform: scale(1.1) rotateZ(180deg);}.sk-folding-cube .sk-cube4 { -webkit-transform: scale(1.1) rotateZ(270deg); transform: scale(1.1) rotateZ(270deg);}.sk-folding-cube .sk-cube2:before { -webkit-animation-delay: 0.3s; animation-delay: 0.3s;}.sk-folding-cube .sk-cube3:before { -webkit-animation-delay: 0.6s; animation-delay: 0.6s; }.sk-folding-cube .sk-cube4:before { -webkit-animation-delay: 0.9s; animation-delay: 0.9s;}@-webkit-keyframes sk-foldCubeAngle { 0%, 10% { -webkit-transform: perspective(140px) rotateX(-180deg); transform: perspective(140px) rotateX(-180deg); opacity: 0; } 25%, 75% { -webkit-transform: perspective(140px) rotateX(0deg); transform: perspective(140px) rotateX(0deg); opacity: 1; } 90%, 100% { -webkit-transform: perspective(140px) rotateY(180deg); transform: perspective(140px) rotateY(180deg); opacity: 0; } }@keyframes sk-foldCubeAngle { 0%, 10% { -webkit-transform: perspective(140px) rotateX(-180deg); transform: perspective(140px) rotateX(-180deg); opacity: 0; } 25%, 75% { -webkit-transform: perspective(140px) rotateX(0deg); transform: perspective(140px) rotateX(0deg); opacity: 1; } 90%, 100% { -webkit-transform: perspective(140px) rotateY(180deg); transform: perspective(140px) rotateY(180deg); opacity: 0; }}解析:四个等边方块形成一个正方形,整个旋转45度,然后每个方块通过不同的延迟时间,沿X轴做翻转动画。设置perspective是为了有3D的效果。
结论:以上的这些案例原理都是通过不同的延迟时间,给元素或子元素设置包括X、Y和Z轴上的移动旋转,以及缩放来达到动画的效果。有了这些参考,加上创意还能做出更多的类型加载效果。
到此这篇关于CSS 实现各种 Loading 效果附带解析过程的文章就介绍到这了,更多相关CSS 实现各种 Loading 效果内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。