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盒子模型详解
Apr 24 HTML / CSS
两种CSS3伪类选择器详细介绍
Dec 24 HTML / CSS
css3 2D图片转动样式可以扩充到Js当中
Apr 29 HTML / CSS
CSS3中的display:grid,网格布局介绍
Oct 30 HTML / CSS
HTML5 Canvas锯齿图代码实例
Apr 10 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
整理HTML5中支持的URL编码与字符编码
Feb 23 HTML / CSS
很酷的HTML5电子书翻页动画特效
Feb 25 HTML / CSS
有关HTML5页面在iPhoneX适配问题
Nov 13 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
Mar 15 HTML / CSS
原生CSS实现文字无限轮播的通用方法
Mar 30 HTML / CSS
CSS3实现的文字弹出特效
Apr 16 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中的实现trim函数代码
2007/03/19 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
Python简单获取自身外网IP的方法
2016/09/18 Python
python素数筛选法浅析
2018/03/19 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
小学生差生评语
2014/12/29 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
党性修养心得体会2016
2016/01/21 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
Python连续赋值需要注意的一些问题
2021/06/03 Python
mysql 带多个条件的查询方式
2021/06/05 MySQL