前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效
效果预览
按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。
https://codepen.io/zhang-ou/pen/vjLQMM
可交互视频教程
此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
请用 chrome, safari, edge 打开观看。
源代码下载
请从 github 下载。
代码解读
定义 dom,一个包含 3 个 span 的容器:
<div class="loader">
<span></span>
<span></span>
<span></span>
</div>
居中显示:
html, body {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}
设置容器的尺寸:
.loader {
width: 150px;
height: 150px;
position: relative;
}
设置矩形的边框样式:
.loader span {
position: absolute;
box-sizing: border-box;
border: 10px solid dimgray;
border-radius: 2px;
}
设置 3 个矩形的尺寸:
.loader span:nth-child(1) {
width: 100%;
height: 100%;
}
.loader span:nth-child(2) {
width: 70%;
height: 70%;
margin: 15%;
}
.loader span:nth-child(3) {
width: 40%;
height: 40%;
margin: 30%;
}
用伪元素绘制左上和右下的装饰条:
.loader span::before,
.loader span::after {
content: '';
position: absolute;
width: 10px;
height: 50%;
background-color: gold;
}
.loader span::before {
top: -10px;
left: -10px;
}
.loader span::after {
bottom: -10px;
right: -10px;
}
定义动画效果:
@keyframes rotating {
from {
transform: rotateY(0deg);
}
to {
transform: rotateY(360deg);
}
}
把动画应用到 3 个矩形上:
.loader span {
animation: rotating linear infinite;
}
.loader span:nth-child(1) {
animation-duration: 4s;
}
.loader span:nth-child(2) {
animation-duration: 2s;
}
.loader span:nth-child(3) {
animation-duration: 1s;
}
最后,设置一下 3 个矩形的堆叠顺序:
.loader span:nth-child(1) {
z-index: 3;
}
.loader span:nth-child(2) {
z-index: 2;
}
.loader span:nth-child(3) {
z-index: 1;
}
大功告成!
知识点
- @keyframes https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes
- animation-duration https://developer.mozilla.org/en-US/docs/Web/CSS/animation-duration
- rotateY https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotateY
- nth-child https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
- z-index https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
- ::before https://developer.mozilla.org/en-US/docs/Web/CSS/::before
- ::after https://developer.mozilla.org/en-US/docs/Web/CSS/::after
前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效的更多相关文章
- 前端每日实战:11# 视频演示如何用纯 CSS 创作一个荧光脉冲 loader 特效
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视频是可以交 ...
- 前端每日实战:86# 视频演示如何用纯 CSS 创作一个方块旋转动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 此视频是可 ...
- 前端每日实战:84# 视频演示如何用纯 CSS 创作一个极品飞车 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MBbEMo 可交互视频 此视频是可 ...
- 前端每日实战:81# 视频演示如何用纯 CSS 创作一个变色旋转动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ejZWKL 可交互视频 此视频是可 ...
- 前端每日实战:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/zhang-ou/pen/GdpPLE 可交互视频教程 此视频 ...
- 前端每日实战:122# 视频演示如何用纯 CSS 创作一个苹果系统的相册图标
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/zJKwbO 可交互视频 此视频是可 ...
- 前端每日实战:69# 视频演示如何用纯 CSS 创作一个单元素抛盒子的 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKwXbx 可交互视频 此视频是可 ...
- 前端每日实战:46# 视频演示如何用纯 CSS 创作一个在容器中反弹的小球
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/jKVbyE 可交互视频教程 此视频 ...
- 前端每日实战:146# 视频演示如何用纯 CSS 创作一个脉动 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/wYvGwr 可交互视频 此视频是可 ...
随机推荐
- 16/7/8_PHP-单引号和双引号的区别
在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"He ...
- Python笔记(三十)_python标准异常总结
python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) ...
- Centos7 -samba服务配置
Centos7 -samba服务配置 https://blog.csdn.net/zh515858237/article/details/76914905 http://blog.51cto.com/ ...
- Pku2054 Color a Tree
有一个N个结点的有根树,1是这个树的根.现在要对这N个结点依次进行染色,每个结点染色要花费1个单位的时候,同时要满足一个结点仅在其父亲被染色后才可被染色,每个结点有个权值Ci,如果我们在第Ti时间对i ...
- 20190928 On Java8 第二十三章 注解
第二十三章 注解 定义在 java.lang 包中的5种标准注解: @Override:表示当前的方法定义将覆盖基类的方法.如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示. ...
- exec 命令
source source命令即点(.)命令. 在bash下输入man source,找到source命令解释处,可以看到解释”Read and execute commands from filen ...
- 模板 - 线性递推BM
模数是998244353的话好像NTT可以更快. #include<bits/stdc++.h> using namespace std; typedef long long ll; co ...
- 固定标签(position: fixed)
document.body.scrollTop 要改成 document.documentElement.scrollTop不然不生效 <!DOCTYPE html> <html l ...
- Python 爬虫 校花网
爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 福利来了 校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易,不会受到打击,第二呢 你懂得.... 1.第一步,需要下 ...
- [转载]浅谈JavaScript函数重载
原文地址:浅谈JavaScript函数重载 作者:ChessZhang 上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试).面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都 ...