纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效

效果预览
按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
https://codepen.io/comehope/pen/QxbmxJ
可交互视频教程
此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
请用 chrome, safari, edge 打开观看。
https://scrimba.com/p/pEgDAM/cepNzTW
源代码下载
每日前端实战系列的全部源代码请从 github 下载:
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,容器中包含 9 个 <span>:
<div class="heart">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
居中显示:
body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: radial-gradient(circle at center, navy, black);
}
定义容器尺寸:
.heart {
width: 14em;
height: 11em;
}
布局容器中的竖条纹:
.heart {
display: flex;
justify-content: space-between;
}
.heart span {
width: 1em;
background-color: lightblue;
border-radius: 0.5em;
}
为竖条纹配色,条纹的样式是左右对称的:
.heart span {
background-color: var(--c);
}
.heart span:nth-child(1),
.heart span:nth-child(9) {
--c: orangered;
}
.heart span:nth-child(2),
.heart span:nth-child(8) {
--c: gold;
}
.heart span:nth-child(3),
.heart span:nth-child(7) {
--c: limegreen;
}
.heart span:nth-child(4),
.heart span:nth-child(6) {
--c: dodgerblue;
}
.heart span:nth-child(5) {
--c: mediumpurple;
}
为竖条纹设置高度,组成心形图案:
.heart span {
height: var(--h);
position: relative;
top: var(--t);
}
.heart span:nth-child(1),
.heart span:nth-child(9) {
--h: 3em;
--t: 2.2em;
}
.heart span:nth-child(2),
.heart span:nth-child(8) {
--h: 6em;
--t: 0.6em;
}
.heart span:nth-child(3),
.heart span:nth-child(7) {
--h: 8em;
--t: 0;
}
.heart span:nth-child(4),
.heart span:nth-child(6) {
--h: 9em;
--t: 0.8em;
}
.heart span:nth-child(5) {
--h: 9.4em;
--t: 1.6em;
}
设置位移动画效果:
.heart span {
animation: beating 5s infinite;
}
@keyframes beating{
0%, 30% {
top: var(--t);
height: var(--h);
}
60%, 70% {
top: 25%;
height: 50%;
}
}
最后,为动画过程中的条纹设置去色、模糊和变窄效果,加强与彩色条纹的差异对比:
@keyframes beating{
0%, 30% {
background-color: var(--c);
filter: blur(0);
width: 1em;
}
60%, 70% {
background-color: lightblue;
filter: blur(5px);
width: 0.1em;
}
}
大功告成!
原文地址:https://segmentfault.com/a/1190000015126240
纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效的更多相关文章
- 39.纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
原文地址:https://segmentfault.com/a/1190000015126240 HTML code: <div class="heart"> < ...
- 前端每日实战:39# 视频演示如何用纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/QxbmxJ 可交互视频教程 此视频 ...
- 3.纯 CSS 创作一个容器厚条纹边框特效
原文地址:3.纯 CSS 创作一个容器厚条纹边框特效 没有啥好点子呀,不爽 HTML代码: <div class="box"> <div class=" ...
- 2.纯 CSS 创作一个矩形旋转 loader 特效
原文地址:2.纯 CSS 创作一个矩形旋转 loader 特效 扩展后地址:https://scrimba.com/c/cNJVWUR 扩展地址:https://codepen.io/pen/ HT ...
- 1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)
原文地址:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效 扩展后地址:https://scrimba.com/c/cJkzMfd HTML代码: <html> <head& ...
- 69.纯 CSS 创作一个单元素抛盒子的 loader
原文地址:https://segmentfault.com/a/1190000015470411#articleHeader0 HTML code: <div class="loade ...
- 52.纯 CSS 创作一个小球绕着圆环盘旋的动画
原文地址:https://segmentfault.com/a/1190000015295466 感想:重点在小球绕环转动. HTML code: <div class="contai ...
- 47.纯 CSS 创作一个蝴蝶标本展示框
html,body{ margin:; padding:; } body{ height: 100vh; display: flex; justify-content: center; align-i ...
- 23.1纯 CSS 创作一个菜单反色填充特效
交互效果地址:https://scrimba.com/c/cEwREJs6 HTML代码: <nav> <ul> <li><span>Home</ ...
随机推荐
- mongodb数据库下载链接,相关配置(转载),官方api
下载链接:http://dl.mongodb.org/dl/win32/x86_64 配置:http://blog.sina.com.cn/s/blog_685213e70101g81t.html 官 ...
- python异常之ModuleNotFoundError: No module named 'test01inner02'
当我们使用sys.path.append(args) 指令向程序中导入模块时其实本次append操作只是在内存中完成的,如果要永久性的添加需要修改环境变量. 我们发现当我们使用print(sys.pa ...
- Python 杂集
Python字符串方法 Python递归和迭代 Python判断字符串编码以及编码的转换 exec 和 eval
- Ubuntu设置右键打开终端
1:设置Ubuntu右键打开终端. Ctrl+Alt+T 打开终端 $ sudo apt-get ins tall nautilus-open-terminal 重启系统 2:进入root用户认证失败 ...
- freertos之内存管理
任务.信号量.邮箱才调度器开始调度之前就应该创建,所以它不可能像裸奔程序那样的函数调用能确定需要多少内存资源,RTOS提供了3种内存管理的方法: 1 方法一:确定性好适合于任务.信号量.队列都不被删除 ...
- vue 引用其他组件
1.在components 目录下新建Test.vue 文件 <template> <div class="test"> <h1>{{ msg ...
- 灰度共生矩阵GLCM分析
纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面性质的纹理概念,可以 ...
- node+express第一次实战踩坑记录
读万卷书不如行万里路,必须实践出真理! 问题1:项目结构该搭建成什么样? 我一个node.js小白,完全没有想法!再见! 找找别人的项目看看别人放的什么项目结构,再结合自己的项目需求我来想想!
- vue cli 脚手架上多页面开发 支持webpack2.x
A yuri demo for webpack2 vue multiple page.我看到有一些项目多页面项目是基于webapck1.0的,我这个是在webpack2.x上布置修改. 项目地址: ...
- java设计模式--建造模式
建造模式 建造模式属于对象创建型模式,建造模式的目的为将复杂对象的构建过程与其部件实现方式分离,使得同样的构建过程可以有不同的表示,同时相同的构建过程也能够适用于不同的部件实现方式. 建造模式的适用性 ...