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实现一个div设置多张背景图片及background-image属性实例演示
Aug 10 HTML / CSS
css3学习心得分享
Aug 19 HTML / CSS
CSS3中的content属性使用示例
Jul 20 HTML / CSS
CSS3条纹背景制作的实战攻略
May 31 HTML / CSS
纯CSS3大转盘抽奖示例代码(响应式、可配置)
Jan 13 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
Apr 23 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
Nov 05 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 HTML / CSS
HTML5来实现本地文件读取和写入的实现方法
May 25 HTML / CSS
在CSS中使用when/else的方法
Jan 18 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程序
2006/10/09 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
vue实现扫码功能
2020/01/17 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python scatter函数用法实例详解
2020/02/11 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
魅力教师事迹材料
2014/01/10 职场文书
骨干教师培训制度
2014/01/13 职场文书
公司请假条格式
2014/04/11 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL