CSS3制作ajax loader icon实现思路及代码


Posted in HTML / CSS onAugust 25, 2013

本文用到的两个CSS3属性:transform、animation
一、HTML

复制代码
代码如下:

<div class="ajax-loading">
<div class="bar1"></div>
<div class="bar2"></div>
<div class="bar3"></div>
<div class="bar4"></div>
<div class="bar5"></div>
<div class="bar6"></div>
<div class="bar7"></div>
<div class="bar8"></div>
</div>

二、CSS

复制代码
代码如下:

.ajax-loading {
position: relative;
width: 100px;
height: 100px;
margin: 25px;
-webkit-transform: scale(0.5);
transform: scale(0.5);
-webkit-animation: rotateThis 1s infinite step-start;
animation: rotateThis 1s infinite step-start;
}
.ajax-loading div {
position: absolute;
top: 35px;
left: 45px;
width: 10px;
height: 30px;
background: #000;
}
.ajax-loading div.bar1 {
-webkit-transform: rotate(0deg) translate(0, -40px);
transform: rotate(0deg) translate(0, -40px);
opacity: 0.12;
}
.ajax-loading div.bar2 {
-webkit-transform: rotate(45deg) translate(0, -40px);
transform: rotate(45deg) translate(0, -40px);
opacity: 0.25;
}
.ajax-loading div.bar3 {
-webkit-transform: rotate(90deg) translate(0, -40px);
transform: rotate(90deg) translate(0, -40px);
opacity: 0.37;
}
.ajax-loading div.bar4 {
-webkit-transform: rotate(135deg) translate(0, -40px);
transform: rotate(135deg) translate(0, -40px);
opacity: 0.5;
}
.ajax-loading div.bar5 {
-webkit-transform: rotate(180deg) translate(0, -40px);
transform: rotate(180deg) translate(0, -40px);
opacity: 0.62;
}
.ajax-loading div.bar6 {
-webkit-transform: rotate(225deg) translate(0, -40px);
transform: rotate(225deg) translate(0, -40px);
opacity: 0.75;
}
.ajax-loading div.bar7 {
-webkit-transform: rotate(270deg) translate(0, -40px);
transform: rotate(270deg) translate(0, -40px);
opacity: 0.87;
}
.ajax-loading div.bar8 {
-webkit-transform: rotate(315deg) translate(0, -40px);
transform: rotate(315deg) translate(0, -40px);
opacity: 1;
}
@-webkit-keyframes rotateThis {
0% {-webkit-transform:scale(0.5) rotate(0deg);}
12.5% {-webkit-transform:scale(0.5) rotate(45deg);}
25% {-webkit-transform:scale(0.5) rotate(90deg);}
37.5% {-webkit-transform:scale(0.5) rotate(135deg);}
50% {-webkit-transform:scale(0.5) rotate(180deg);}
62.5% {-webkit-transform:scale(0.5) rotate(225deg);}
75% {-webkit-transform:scale(0.5) rotate(270deg);}
87.5% {-webkit-transform:scale(0.5) rotate(315deg);}
100% {-webkit-transform:scale(0.5) rotate(360deg);}
}
@keyframes rotateThis {
0% {transform:scale(0.5) rotate(0deg);}
12.5% {transform:scale(0.5) rotate(45deg);}
25% {transform:scale(0.5) rotate(90deg);}
37.5% {transform:scale(0.5) rotate(135deg);}
50% {transform:scale(0.5) rotate(180deg);}
62.5% {transform:scale(0.5) rotate(225deg);}
75% {transform:scale(0.5) rotate(270deg);}
87.5% {transform:scale(0.5) rotate(315deg);}
100% {transform:scale(0.5) rotate(360deg);}
}

三、思路
1. transform控制每个小方块在Y轴的偏移,rotate控制旋转的角度,scale缩放至原大小的一半;
2. opacity在每个小方块之间相差0.12左右,达到渐变效果;
3. 设置top与left偏移,控制圆心在中心处;
4. 为整个方块设置旋转动画rotateThis,定义8个时间点;
5. 设置动画的animation-timing-function为step-start,达到的效果是不让动画渐变;
HTML / CSS 相关文章推荐
浅析几个CSS3常用功能的写法
Jun 05 HTML / CSS
一款纯css3实现的动画加载导航
Oct 08 HTML / CSS
canvas实现图片马赛克的示例代码
Mar 26 HTML / CSS
html通过canvas转成base64的方法
Jul 18 HTML / CSS
html5实现的便签特效(实战分享)
Nov 29 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
canvas如何绘制钟表的方法
Dec 13 HTML / CSS
详解h5页面在不同ios设备上的问题总结
Mar 01 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
Jan 14 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
血轮眼轮回眼特效 html+css
Mar 31 HTML / CSS
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
Jul 01 HTML / CSS
css3学习心得分享
Aug 19 #HTML / CSS
CSS3实现的闪烁跳跃进度条示例(附源码)
Aug 19 #HTML / CSS
css3实现背景图片拉伸效果像桌面壁纸一样
Aug 19 #HTML / CSS
发现两个有趣的CSS3动画效果
Aug 14 #HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
Aug 11 #HTML / CSS
CSS3正方体旋转示例代码
Aug 08 #HTML / CSS
CSS3 透明色 RGBA使用介绍
Aug 06 #HTML / CSS
You might like
php调用mysql存储过程
2007/02/14 PHP
PHP教程 变量定义
2009/10/23 PHP
关于php fread()使用技巧
2010/01/22 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
一些常用的Javascript函数
2006/12/22 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
js实现搜索栏效果
2018/11/16 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
python 生成图形验证码的方法示例
2018/11/11 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
会计专业应届生自荐信
2014/02/07 职场文书
年终总结会议主持词
2014/03/17 职场文书
文明家庭事迹材料
2014/12/20 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
Redis 常见使用场景
2021/08/30 Redis
SQL CASE 表达式的具体使用
2022/03/21 SQL Server