个好的开篇,会给你这个项目增加不少分值。
有没有遇到过打开页面加载一段时间,页面内容才加载出来。在等待加载的过程中页面却是空白页,给用户的体验特别不好,会让项目降一个档次。下面的十六种炫酷炸裂的css加载动画,会让你在等待的过程中,体验视觉盛宴,给用户不一般的加载体验,对,就是纯css3的炫酷加载动画,请看效果!
码字不易,且行且珍惜。
加载1
css源码
.title{ width: 100%; text-align: center; margin:60px 0; font-size: 18px; color: #999; } .loadingOne{ width: 80px; height: 40px; margin: 0 auto; } .loadingOne span{ display: inline-block; width: 8px; height: 100%; border-radius: 4px; background: lightgreen; -webkit-animation: load 1s ease infinite; animation: load 1s ease infinite; } @-webkit-keyframes load{ 0%,100%{ height: 40px; background: lightgreen; } 50%{ height: 70px; margin: -15px 0; background: lightblue; } } .loadingOne span:nth-child(2){ -webkit-animation-delay:0.2s; animation-delay:0.2s; } .loadingOne span:nth-child(3){ -webkit-animation-delay:0.4s; animation-delay:0.4s; } .loadingOne span:nth-child(4){ -webkit-animation-delay:0.6s; animation-delay:0.6s; } .loadingOne span:nth-child(5){ -webkit-animation-delay:0.8s; animation-delay:0.8s; }
html源码
<div class="loadingOne"> <span></span> <span></span> <span></span> <span></span> <span></span> </div> <p class="title">[加载1]</p>
加载2
css源码
.loadingTwo{ width: 150px; height: 4px; border-radius: 2px; margin: 0 auto; margin-top:100px; position: relative; background: lightgreen; -webkit-animation: changeBgColor 1.04s ease-in infinite alternate; animation: changeBgColor 1.04s ease-in infinite alternate; } .loadingTwo span{ display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: lightgreen; position: absolute; margin-top: -7px; margin-left:-8px; -webkit-animation: changePosition 1.04s ease-in infinite alternate; animation: changePosition 1.04s ease-in infinite alternate; } @-webkit-keyframes changeBgColor{ 0%{ background: lightgreen; } 100%{ background: lightblue; } } @-webkit-keyframes changePosition{ 0%{ background: lightgreen; } 100%{ margin-left: 142px; background: lightblue; } }
html源码
<div class="loadingTwo"> <span></span> </div>
加载3
css源码
.loadingThree{ width: 150px; height: 15px; margin: 0 auto; margin-top:100px; } .loadingThree span{ display: inline-block; width: 15px; height: 100%; margin-right: 5px; border-radius: 50%; background: lightgreen; -webkit-animation: load 1.04s ease infinite; } .loadingThree span:last-child{ margin-right: 0px; } @-webkit-keyframes load{ 0%{ opacity: 1; } 100%{ opacity: 0; } } .loadingThree span:nth-child(1){ -webkit-animation-delay:0.13s; } .loadingThree span:nth-child(2){ -webkit-animation-delay:0.26s; } .loadingThree span:nth-child(3){ -webkit-animation-delay:0.39s; } .loadingThree span:nth-child(4){ -webkit-animation-delay:0.52s; } .loadingThree span:nth-child(5){ -webkit-animation-delay:0.65s; }
html源码
<div class="loadingThree"> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
加载4
css源码
.loadingFour{ width: 150px; height: 15px; margin: 0 auto; margin-top:100px; text-align: center; } .loadingFour span{ display: inline-block; width: 15px; height: 100%; margin-right: 5px; background: lightgreen; -webkit-animation: load 1.04s ease infinite; } .loadingFour span:last-child{ margin-right: 0px; } @-webkit-keyframes load{ 0%{ opacity: 1; } 100%{ opacity: 0; } } .loadingFour span:nth-child(1){ -webkit-animation-delay:0.13s; } .loadingFour span:nth-child(2){ -webkit-animation-delay:0.26s; } .loadingFour span:nth-child(3){ -webkit-animation-delay:0.39s; } .loadingFour span:nth-child(4){ -webkit-animation-delay:0.52s; } .loadingFour span:nth-child(5){ -webkit-animation-delay:0.65s; }.loadingTwo{ width: 150px; height: 4px; border-radius: 2px; margin: 0 auto; margin-top:100px; position: relative; background: lightgreen; -webkit-animation: changeBgColor 1.04s ease-in infinite alternate; animation: changeBgColor 1.04s ease-in infinite alternate; } .loadingTwo span{ display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: lightgreen; position: absolute; margin-top: -7px; margin-left:-8px; -webkit-animation: changePosition 1.04s ease-in infinite alternate; animation: changePosition 1.04s ease-in infinite alternate; } @-webkit-keyframes changeBgColor{ 0%{ background: lightgreen; } 100%{ background: lightblue; } } @-webkit-keyframes changePosition{ 0%{ background: lightgreen; } 100%{ margin-left: 142px; background: lightblue; } }
html源码
<div class="loadingFour"> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
加载5
css源码
.loadingFive{ width: 150px; height: 15px; margin: 0 auto; margin-top:100px; } .loadingFive span{ display: inline-block; width: 15px; height: 100%; margin-right: 5px; background: lightgreen; -webkit-transform-origin: right bottom; -webkit-animation: load 1s ease infinite; } .loadingFive span:last-child{ margin-right: 0px; } @-webkit-keyframes load{ 0%{ opacity: 1; } 100%{ opacity: 0; -webkit-transform: rotate(90deg); } } .loadingFive span:nth-child(1){ -webkit-animation-delay:0.13s; } .loadingFive span:nth-child(2){ -webkit-animation-delay:0.26s; } .loadingFive span:nth-child(3){ -webkit-animation-delay:0.39s; } .loadingFive span:nth-child(4){ -webkit-animation-delay:0.52s; } .loadingFive span:nth-child(5){ -webkit-animation-delay:0.65s; }.loadingTwo{ width: 150px; height: 4px; border-radius: 2px; margin: 0 auto; margin-top:100px; position: relative; background: lightgreen; -webkit-animation: changeBgColor 1.04s ease-in infinite alternate; animation: changeBgColor 1.04s ease-in infinite alternate; } .loadingTwo span{ display: inline-block; width: 16px; height: 16px; border-radius: 50%; background: lightgreen; position: absolute; margin-top: -7px; margin-left:-8px; -webkit-animation: changePosition 1.04s ease-in infinite alternate; animation: changePosition 1.04s ease-in infinite alternate; } @-webkit-keyframes changeBgColor{ 0%{ background: lightgreen; } 100%{ background: lightblue; } } @-webkit-keyframes changePosition{ 0%{ background: lightgreen; } 100%{ margin-left: 142px; background: lightblue; } }.loadingFive{ width: 150px; height: 15px; margin: 0 auto; margin-top:100px; } .loadingFive span{ display: inline-block; width: 15px; height: 100%; margin-right: 5px; background: lightgreen; -webkit-transform-origin: right bottom; -webkit-animation: load 1s ease infinite; } .loadingFive span:last-child{ margin-right: 0px; } @-webkit-keyframes load{ 0%{ opacity: 1; } 100%{ opacity: 0; -webkit-transform: rotate(90deg); } } .loadingFive span:nth-child(1){ -webkit-animation-delay:0.13s; } .loadingFive span:nth-child(2){ -webkit-animation-delay:0.26s; } .loadingFive span:nth-child(3){ -webkit-animation-delay:0.39s; } .loadingFive span:nth-child(4){ -webkit-animation-delay:0.52s; } .loadingFive span:nth-child(5){ -webkit-animation-delay:0.65s; }
html源码
<div class="loadingSix"> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
加载6
css源码
.loadingSeven{ width: 80px; height: 40px; margin: 0 auto; margin-top:100px; } .loadingSeven span{ display: inline-block; width: 8px; height: 100%; border-radius: 4px; background: lightgreen; -webkit-animation: loadsaven 1.04s ease infinite; } @-webkit-keyframes loadsaven{ 0%,100%{ height: 40px; background: lightgreen; } 50%{ height: 60px; margin-top: -20px; background: lightblue; } } .loadingSeven span:nth-child(2){ -webkit-animation-delay:0.13s; } .loadingSeven span:nth-child(3){ -webkit-animation-delay:0.26s; } .loadingSeven span:nth-child(4){ -webkit-animation-delay:0.39s; } .loadingSeven span:nth-child(5){ -webkit-animation-delay:0.52s; }
html源码
<div class="loadingSeven"> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
加载7
css源码
.loadingSeven{ width: 80px; height: 40px; margin: 0 auto; margin-top:100px; } .loadingSeven span{ display: inline-block; width: 8px; height: 100%; border-radius: 4px; background: lightgreen; -webkit-animation: loadsaven 1.04s ease infinite; } @-webkit-keyframes loadsaven{ 0%,100%{ height: 40px; background: lightgreen; } 50%{ height: 60px; margin-top: -20px; background: lightblue; } } .loadingSeven span:nth-child(2){ -webkit-animation-delay:0.13s; } .loadingSeven span:nth-child(3){ -webkit-animation-delay:0.26s; } .loadingSeven span:nth-child(4){ -webkit-animation-delay:0.39s; } .loadingSeven span:nth-child(5){ -webkit-animation-delay:0.52s; }
html源码
<div class="loadingSeven"> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
加载8
css源码
.loadingEight{ width: 80px; height: 80px; border-radius: 50%; margin: 0 auto; margin-top:100px; position: relative; border:5px solid lightgreen; -webkit-animation: turn 2s linear infinite; } .loadingEight span{ display: inline-block; width: 30px; height: 30px; border-radius: 50%; background: lightgreen; position: absolute; left: 50%; margin-top: -15px; margin-left: -15px; -webkit-animation: changeBgColor 2s linear infinite; } @-webkit-keyframes changeBgColor{ 0%{ background: lightgreen; } 100%{ background: lightblue; } } @-webkit-keyframes turn{ 0%{ -webkit-transform: rotate(0deg); border-color: lightgreen; } 100%{ -webkit-transform: rotate(360deg); border-color: lightblue; } }
html源码
<div class="loadingEight"> <span></span> </div>
搬你想搬,盖你所需,码字不易,且行且珍惜!
用 HTML 和 CSS 制作 LOGO 动画要比以前更容易,通过使用最新的 JavaScript 库也能够使网页动画制作的更加精良。
在本文中,我们将与大家分享 10 个让人印象深刻的世界知名品牌与未知实体的自定义 LOGO 动画示例。一起来 Enjoy 吧!
SVG 动画作为网上最热门的动画趋势之一,备受大家的关注。而这个花的 LOGO 动画便是一个很好的 SVG 动画示例。
我们可以看到,此 LOGO 的图标和文字在<svg>标签内编写,通过 CSS 来控制动画,并可以自动的完成页面的加载。当然,需要一些 SVG 特定的 CSS 属性支持,例如stroke-dashoffset(译者:表示虚线的起始偏移),它会按顺序来推动轮廓的运动,进而实现了精美的动画效果。
项目地址:https://codepen.io/flwrs/pen/gLrygN
Carbon LDP 的 LOGO 动画相当的复杂。但是开发者 David McFeders 通过 CSS/Compass 实现了 Carbon 的 LOGO 动画,从而也提升了它的逼格。
无论是 LOGO 的大小,还是动画的速度都很容易设置。它由纯 CSS 实现,并保持着无限的循环。虽然,LOGO 的字母是一张 PNG 图片,但你也可以随时利用自己设计的字体进行逆向工程。
项目地址:https://codepen.io/MiguelAraCo/pen/QbZqoQ
Binary Lab 的 LOGO 动画同样是本文中比较复杂的动画效果之一。我们可以看到它的效果:从烧瓶里拉出的数字,在 LOGO 的上方不断的消失。
动画效果是由 CSS 控制的。同时,这个作品依赖了 TweenMax 库来添加重复的数字,并完成自定义的 alpha 转换。作者很有创意的利用 CSS 与 JS 实现了这个酷炫的 Web 动画效果。
项目地址:https://codepen.io/iconjunkie/pen/vLEaNZ
Stack Overflow 的 LOGO 是我最喜欢的 LOGO 之一,因为它的设计不仅简单,而且易识别。而这个作品仅用 CSS3 将 Stack Overflow 的 LOGO 进行了动画效果的实现。
这是迄今为止我看到的最令人印象深刻的纯 CSS 动画之一。最终的展现也与官方的 LOGO 很搭,同时在主流浏览器中动画都可以流畅的运行。相信,任何喜欢 CSS / SCSS 动画的朋友都会喜欢上这个作品。
项目地址:https://codepen.io/lindell/pen/mEVgJP
这个作品是由 Tim Pietrusky 利用 SVG 和均匀的 CSS 转换实现的怪物能量 LOGO 系列动画。如果你也打算在 LOGO 上实现淡入淡出的特效,就可以复制他的代码来学习。
它是一款纯 CSS 实现的动画,所有的动画时间都是由 SCSS 直接进行调控。同时,你也可以通过更改变量来调节动画的速度,淡化颜色。
项目地址:https://codepen.io/TimPietrusky/pen/vKuja
Subvisual 团队拥有非常独特的 LOGO,而开发者 Miguel Palhas 则赋予了它酷炫的动画效果。你会发现构成它的动画效果有两个因素,即 LOGO 的文字和“ S ”形图标。
作品是基于 SVG 元素构成的,也使操纵更简单。虽然作品中的大多数动画都是基于 CSS 编写的,但它也依赖 JavaScript 库:TweenLite。同时,这个作品可以根据用户的操作来重复或触发动画效果。(悬停、点击等)
项目地址:https://codepen.io/naps62/pen/eNMvpQ
通过使用免费的像素字体,任何开发人员都可以制作出自定义的像素动画。而这个作品就是由 CodePen 的用户 Khaosmuhaha 所制作的。
他通过 HTML Canvas 元素进行纯文本的操作,动画效果则是由 CSS3 的 animation 属性进行驱动,而 jQuery 则控制了全部。所以,我们所见的连续像素动画就这样实现了。
显然,这是一个利用 Canvas 元素与 webfont 构成的炫酷的作品。
项目地址:https://codepen.io/Khaosmuhaha/pen/MYzRGz
如果你正在寻找一个真正复杂的 LOGO 动画,可以看看开发者 Alex Aloia 制作的这个示例。在作品中,作者使用了他的名字作为品牌名称,并将一系列复杂的 SVG 形状通过绘图的动画效果展现出来。
作品的整体效果只通过 CSS 来实现是不太可能的,还需要一些 JS 库 (DrawSVG 和更流行的 D3.js)的支持。但是,利用开源库来实现这种独一无二的动画,还是非常有趣的。
项目地址:https://codepen.io/tripl3inf/pen/QwrEMY
Bayleys 的 LOGO 动画的选择,有些令人费解。但 LOGO 厚实的边缘使重制变得易如反掌。开发者 Rafael Contreras 仅通过 38 行代码便实现了动画效果。
LOGO 是基于 SVG 标签制作的,动画效果则是操纵相应的标签来实现。而在不同的方向移动的众多 LOGO 元素,使动画令人着迷。
项目地址:https://codepen.io/rafita/pen/aNyRgv
这是来自任天堂最新款游戏机的一个 LOGO 动画。而开发者 Koto Furumiya 在 CodePen 上实现了它们广告片中的动画效果。
Koto 使用 SVG 重制了任天堂 Switch 的 LOGO,并用 CSS 实现了它的动画效果。你会相信这个动画只需要 50 行的 CSS 代码吗?
另外,不得不提这个动画效果确实很逼真。强有力的下推与反弹回升效果,确实与任天堂 Switch 的开机动画相吻合。
项目地址:https://codepen.io/kotofurumiya/pen/VPmNrR
今天分享的所有示例都是免费与开源的,希望你能将它们应用在你自己的项目上。同时,也希望你能喜欢这些 Demos。如果你正在寻找更多关于 CSS 动画的示例,也可以了解下这个合辑。
感谢你的阅读。
注:
本文版权归原作者所有,仅用于学习与交流。
如需转载译文,烦请按下方注明出处信息,谢谢!
英文原文:10 Amazing Examples of CSS & JavaScript Animated Logos
作者:Jake Rocheleau
译者:IT程序狮
译文地址:http://www.jianshu.com/p/b204e854a942
GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用纯CSS实现动画加载效果的项目——SpinKit。
SpinKit通过使用transform和opacity属性实现了包括方块翻转、圆点旋转、圆环缩放和九宫格渐变等10余种动画加载的效果。
部分效果代码:
<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>
.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;
}
}
<div class="spinner">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
.spinner {
margin: 100px auto 0;
width: 70px;
text-align: center;
}
.spinner > div {
width: 18px;
height: 18px;
background-color: #333;
border-radius: 100%;
display: inline-block;
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
.spinner .bounce1 {
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.spinner .bounce2 {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
@-webkit-keyframes sk-bouncedelay {
0%, 80%, 100% { -webkit-transform: scale(0) }
40% { -webkit-transform: scale(1.0) }
}
@keyframes sk-bouncedelay {
0%, 80%, 100% {
-webkit-transform: scale(0);
transform: scale(0);
} 40% {
-webkit-transform: scale(1.0);
transform: scale(1.0);
}
}
其他效果:
GitHub: https://github.com/tobiasahlin/SpinKit
*请认真填写需求信息,我们会在24小时内与您取得联系。