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 相关文章推荐
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
Aug 11 HTML / CSS
一款基于css3的列表toggle特效实例教程
Jan 04 HTML / CSS
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
Apr 26 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
Nov 16 HTML / CSS
利用Canvas模仿百度贴吧客户端loading小球的方法示例
Aug 13 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
HTML5 文件上传下载的实例代码
Jul 03 HTML / CSS
HTML5实现音频和视频嵌入的方法
Aug 22 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 HTML / CSS
AmazeUI图片轮播效果的示例代码
Aug 20 HTML / CSS
css3 文字断裂效果
Apr 22 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
第四节--构造函数和析构函数
2006/11/16 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
Python实现把回车符\r\n转换成\n
2015/04/23 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
Django实现简单的分页功能
2021/02/22 Python
《难忘的泼水节》教学反思
2014/02/27 职场文书
车队司机自我鉴定
2014/03/02 职场文书
租房协议书
2014/09/12 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
涨价通知怎么写
2015/04/23 职场文书
新党员入党决心书
2015/09/22 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python