前端每日实战:39# 视频演示如何用纯 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;
}
}
大功告成!
前端每日实战:39# 视频演示如何用纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效的更多相关文章
- 39.纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
原文地址:https://segmentfault.com/a/1190000015126240 HTML code: <div class="heart"> < ...
- 前端每日实战:157# 视频演示如何用纯 CSS 创作一个棋盘错觉动画(实际上每一行都是平行的)
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VEyoGj 可交互视频 此视频是可 ...
- 前端每日实战:158# 视频演示如何用纯 CSS 创作一个雨伞 toggle 控件
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pxLbjv 可交互视频 此视频是可 ...
- 前端每日实战:122# 视频演示如何用纯 CSS 创作一个苹果系统的相册图标
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/zJKwbO 可交互视频 此视频是可 ...
- 前端每日实战:156# 视频演示如何用纯 CSS 创作一个飞机舷窗风格的 toggle 控件
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/jeaOrw 可交互视频 此视频是可 ...
- 前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/YLRLaM 可交互视频教程 此视频 ...
- 前端每日实战:30# 视频演示如何用纯 CSS 创作一个晃动的公告板
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/wjZoGV 可交互视频教程 此视频 ...
- 前端每日实战:45# 视频演示如何用纯 CSS 创作一个菱形 loader 动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKzjqK 可交互视频教程 此视频 ...
- 前端每日实战:86# 视频演示如何用纯 CSS 创作一个方块旋转动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 此视频是可 ...
随机推荐
- java调用IPFS去中心化体系
Maven pom.xml引入 <repositories> <repository> <id>jitpack.io</id> <url>h ...
- Cf D. Nauuo and Circle
https://codeforces.com/contest/1173/problem/D 题意: 给出你一个包含 n 个点的树,这 n 个点编号为 1~n: 给出一个圆,圆上放置 n 个位置,第 i ...
- poj 1463树形dp 树的最小覆盖
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...
- day09-正侧表达式
while True: phone_num = input('please input your phone_num:') if len(phone_num) == 11 \ and phone_nu ...
- Redhat6更改yum源 (转)
最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录[root@rhel6 ~] ...
- FireWall2
配置防火墙步骤: 1.给接口配置ip,开 service-manage 服务 2.把接口画在zone区域 3.配置策略 4.服务器一定要开启服务 1. interface GigabitEtherne ...
- redis的集群:
集群策略:主从复制哨兵集群 参考:https://blog.csdn.net/q649381130/article/details/79931791 集群又分为如下:客户端分片基于代理的分片路由查询参 ...
- iOS 版本更新迭代
开发中我们可能会遇到这样的需求,当AppStore中有新版本迭代更新,在用户点开APP的时候弹框提醒客户去AppStore更新APP.这里面就有个关键点,判断当前APP与AppStore中的版本高低, ...
- Linux挂载存储(供应商给的资料)
infofile iqn.1994-05.com.redhat:16a2b8b7d8 infodb iqn.1994-05.com.redhat:8518efa2fe72 在iscsi server上 ...
- 用go写爬虫服务并发请求,限制并发数
java写爬虫服务,思路是线程池,任务队列,限制并行线程数即可. go要用另一种设计思路,不能在线程层面限制,协程的异步请求,如果不作处理,并行发出所有网络请求,因网络请求数过多,会抛出异常 低版本的 ...