多种多样的Loading特效

每次打开一些新闻客服端等APP都会看到很有特色的loading特效,就好奇用前端的知识该怎么去实现,本来以为要花挺长时间,不过明白了原理之后就很快搞定了。
大多数的特效原理都是想通的,所以就上了四种特效,代码可能写的比较粗糙,大家多多理解,相互学习。(并未兼容IE浏览器哦)。

第一种特效:

1 <div id="loading_1">
2         <div class="cir cir1"><span></span></div>
3         <div class="cir cir2"><span></span></div>
4         <div class="cir cir3"><span></span></div>
5         <div class="cir cir4"><span></span></div>
6     </div>

首先是Html结构,四个div分别具有不同的颜色,将其进行绝对定位,让四个div的初始位置在同一个点,然后对每个div块进行动画设置。最后再将外层div绕中心点进行旋转形成最终效果动画。

下面是样式代码,主要通过css3动画实现。

  1 #loading_1 {
  2         width: 400px;
  3         height: 200px;
  4         /*border: 1px solid #ddd;*/
  5         position: relative;
  6         animation: rotate 2s infinite;
  7         margin: 0 auto;
  8     }
  9
 10     @keyframes rotate {
 11         0% {
 12             transform: rotate(0deg);
 13         }
 14         50% {
 15             transform: rotate(180deg);
 16         }
 17         100% {
 18             transform: rotate(360deg);
 19         }
 20     }
 21
 22     .cir {
 23         position: absolute;
 24         width: 16px;
 25         height: 16px;
 26         overflow: hidden;
 27         top: 92px;
 28         left: 192px;
 29     }
 30
 31     #loading_1 div:nth-child(1) {
 32         background: #8EE5EE;
 33     }
 34
 35     #loading_1 div:nth-child(2) {
 36         background: #FFE4B5;
 37     }
 38
 39     #loading_1 div:nth-child(3) {
 40         background: #00CD00;
 41     }
 42
 43     #loading_1 div:nth-child(4) {
 44         background: #FF6A6A;
 45     }
 46
 47     .cir1 {
 48         animation: loading_1 2s linear infinite;
 49     }
 50
 51     @keyframes loading_1 {
 52         0% {
 53             top: 62px;
 54             left: 162px;
 55         }
 56         50% {
 57             top: 92px;
 58             left: 192px;
 59         }
 60         100% {
 61             top: 62px;
 62             left: 162px;
 63         }
 64     }
 65
 66     .cir2 {
 67         animation: loading_2 2s linear infinite;
 68     }
 69
 70     @keyframes loading_2 {
 71         0% {
 72             top: 62px;
 73             left: 222px;
 74         }
 75         50% {
 76             top: 92px;
 77             left: 192px;
 78         }
 79         100% {
 80             top: 62px;
 81             left: 222px;
 82         }
 83     }
 84
 85     .cir3 {
 86         animation: loading_3 2s linear infinite;
 87     }
 88
 89     @keyframes loading_3 {
 90         0% {
 91             top: 122px;
 92             left: 162px;
 93         }
 94         50% {
 95             top: 92px;
 96             left: 192px;
 97         }
 98         100% {
 99             top: 122px;
100             left: 162px;
101         }
102     }
103
104     .cir4 {
105         animation: loading_4 2s linear infinite;
106     }
107
108     @keyframes loading_4 {
109         0% {
110             top: 122px;
111             left: 222px;
112         }
113         50% {
114             top: 92px;
115             left: 192px;
116         }
117         100% {
118             top: 122px;
119             left: 222px;
120         }
121     }

代码中的数值设置不要在意,根据不同动画效果设置也不同。

具体效果演示可点击:http://www.w3cfuns.com/notes/19044/54865f5fbdd5a3126798755e7c3e14a2.html

第二种特效:

首先还是上Html结构代码

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

特效的动画原理:首先同样绝对定位四个div,每一个div的左上角都有一个span,具有不用的颜色,刚开始四个div是重叠在一起的,然后对每一个div进行旋转,但是此时要给后续的div旋转动画设置一个延迟。

来看一下css代码:

 1 #loading_2 {
 2         width: 400px;
 3         height: 200px;
 4         position: relative;
 5         margin: 0 auto;
 6     }
 7
 8     #loading_2 div {
 9         width: 100px;
10         height: 100px;
11         position: absolute;
12         margin-left: 150px;
13         animation: loading 1.8s linear infinite;
14     }
15
16     #loading_2 span {
17         display: block;
18         width: 20px;
19         height: 20px;
20         border-radius: 20px;
21     }
22
23     @keyframes loading {
24         0% {
25             transform: rotate(0deg);
26         }
27         10% {
28             transform: rotate(45deg);
29         }
30         50% {
31             opacity: 1;
32             transform: rotate(160deg);
33         }
34         62% {
35             opacity: 0;
36         }
37         65% {
38             opacity: 0;
39             transform: rotate(200deg);
40         }
41         90% {
42             transform: rotate(340deg);
43         }
44         100% {
45             transform: rotate(360deg);
46         }
47     }
48
49     #loading_2 span {
50         background: #8EE5EE;
51     }
52
53     #loading_2 div:nth-child(1) {
54         animation-delay: 0.2s;
55     }
56
57     #loading_2 div:nth-child(2) {
58         animation-delay: 0.4s;
59     }
60
61     #loading_2 div:nth-child(3) {
62         animation-delay: 0.6s;
63     }
64
65     #loading_2 div:nth-child(4) {
66         animation-delay: 0.8s;
67     }

第三种特效:

这个特效就很容易实现了,通过css3属性中的scale缩放属性很容易实现,同样可以设置延迟,实现不同的效果。

直接上代码了:

 1 #loading_3 {
 2         width: 400px;
 3         height: 200px;
 4         margin: 0 auto;
 5     }
 6
 7     #loading_3 div {
 8         float: left;
 9         width: 10px;
10         height: 80px;
11         margin-left: 20px;
12         animation: scale 1.5s linear infinite;
13     }
14
15     @keyframes scale {
16         0% {
17             transform: scale(1, 1);
18         }
19         50% {
20             transform: scale(1, 1.8);
21         }
22         100% {
23             transform: scale(1, 1);
24         }
25     }
26
27     #loading_3 div:nth-child(1) {
28         background: #8EE5EE;
29         margin-left: 150px;
30         animation-delay: 0.2s;
31     }
32
33     #loading_3 div:nth-child(2) {
34         background: #FFE4B5;
35         animation-delay: 0.4s;
36     }
37
38     #loading_3 div:nth-child(3) {
39         background: #00CD00;
40         animation-delay: 0.6s;
41     }
42
43     #loading_3 div:nth-child(4) {
44         background: #FF6A6A;
45         animation-delay: 0.8s;
46     }

总结:

一般这种动画的实现原理都大同小异,明白了一个动画的动画原理,结合html/css知识的理解,就很容易做到。

具体效果可查看:http://www.w3cfuns.com/notes/19044/54865f5fbdd5a3126798755e7c3e14a2.html

时间: 2024-11-26 02:43:54

多种多样的Loading特效的相关文章

CSS Loading 特效

全页面遮罩效果loading css: .loading_shade { position: fixed; left: 0; top: 0; width: 100%; height: 100%; display: -webkit-box; -webkit-box-pack: center; -webkit-box-align: center; background: rgba(255,255,255,.7); z-index: 99 } .loading_box { padding: 30px;

如何用纯 CSS 创作一个精彩的彩虹 loading 特效

效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/vjvoow 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码. 请用 chrome, safari, edge 打开观看. https://scrimba.com/p/pEgDAM/cPLGLhV 源代码下载 本地下载 每日前端实战系列的全部源代码请从 github 下载: https://github.co

纯CSS3创意loading文字特效

快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代   http://pan.baidu.com/s/1qWkJfcS 官方QQ群:(申请加入,说是我推荐的) App实践出真知 4

页面头部带loading进度指示的jQuery滚动页面特效

这是一款非常实用且效果很酷的jQuery页面头部带loading进度指示的滚动页面特效.该特效在页面滚动的时候页面头部有Loading进度条指示当前页面滚动的位置,这可以让用户知道当前阅读的地方距离页面底部还有多少距离. 该页面头部loading特效共有4中效果:基本的loading进度条效果,整个头部作为loading进度条的效果,网站logo作为loading进度条的效果和loading和网站logo进度条同时操作的效果. 在线演示:http://www.htmleaf.com/Demo/2

CSS3实现水位充满文字特效

CSS3实现水位充满文字特效是一款既是Loading特效也是文字特效,Loading动画开始时,文字中的水位渐渐上升,为了模拟水位上升的真实效果,水面还会波浪浮动,当Loading动画结束时,文字中的水位又会渐渐退去,动画效果和上升类似,这样周而复始,从而达到很酷HTML5 Loading动画效果.JQuery特效 源代码:http://www.huiyi8.com/sc/8898.html CSS3实现水位充满文字特效,布布扣,bubuko.com

7款震撼人心的HTML5文字特效

1.CSS3五彩文字特效 文字带阴影效果 这是一款非常具有卡通形象的CSS3五彩文字特效,虽然没有迷人的动画效果,但是五彩缤纷的文字展现在屏幕上也是非常酷的,再加上每一个文字都有不同角度的阴影效果,加上漂亮的英文字体,让整一个文字特效显得非常出色迷人,大家可以在宣传广告页面试试这款CSS3文字特效. 在线演示 源码下载 2.HTML5/CSS3 Loading动画 水位充满文字特效 这款HTML5动画既是Loading特效也是文字特效,Loading动画开始时,文字中的水位渐渐上升,为了模拟水位

页面加载和图片加载loading

准备放假了!也是闲着了 ,就来整理之前学到或用到的一下知识点和使用内容,这次记录的是关于加载的友好性loading!!!这里记录一下两种加载方法 1.页面加载的方法,它需要用到js里面两个方法 document.onreadystatechange = function(){} document.readyState//有两个值 interactive//加载中 complete//加载完成 两个方法同时使用 document.onreadystatechange = function(){ i

cocos2dx lua 动画

--方法1 local spriteFrameCache= cc.SpriteFrameCache:getInstance(); local animationCache= cc.AnimationCache:getInstance(); spriteFrameCache:addSpriteFrames("Effect/loading.plist"); animationCache :addAnimations ("Effect/loading_effect.plist&qu

分享web前端七款HTML5 Loading动画特效集锦

以前我们大部分的Loading动画都是利用gif图片实现的,这种图片实现Loading动画的方法虽然也很不错,但是作为HTML5开发者来说,如果能利用HTML5和CSS3实现这些超酷的Loading动画,那将是一件非常痛快的事情. 1.HTML5 Canvas发光Loading动画 之前我们分享过很多基于CSS3的Loading动画效果,相信大家都很喜欢.今天我们要来分享一款基于HTML5 Canvas的发光Loading加载动画特效.Loading旋转图标是在canvas画布上绘制的,整个lo