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实现鼠标滑过鼠标点击代码写法
Dec 26 HTML / CSS
CSS3 滤镜 webkit-filter详细介绍及使用方法
Dec 27 HTML / CSS
目前不被任何主流浏览器支持的CSS3属性汇总
Jul 21 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
Oct 17 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
Aug 02 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
Oct 20 HTML / CSS
移动端html5模拟长按事件的实现方法
Sep 30 HTML / CSS
canvas绘制圆角头像的实现方法
Jan 17 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
HTML中的表单Form实现居中效果
May 25 HTML / CSS
html粘性页脚的具体使用
Jan 18 HTML / CSS
CSS 左边固定宽右边自适应的6种方法
May 15 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加密扩展库Mcrypt安装和实例
2013/11/10 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
php GUID生成函数和类
2014/03/10 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
用python实现对比两张图片的不同
2018/02/05 Python
python实现图片文件批量重命名
2020/03/23 Python
python生成密码字典的方法
2018/07/06 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
高级护理实习生自荐信
2013/09/28 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
教学质量评估实施方案
2014/03/17 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
库房管理员岗位职责
2015/02/12 职场文书
英文慰问信
2015/02/14 职场文书
党校毕业个人总结
2015/02/28 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python