资讯专栏INFORMATION COLUMN

前端每日实战:20# 视频演示如何用纯 CSS 为母亲节创作一颗像素画风格的爱心

时飞 / 3245人阅读

摘要:效果预览按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。可交互视频教程此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。源代码下载请从下载。

效果预览

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/LmrZVX

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cPd9asV

源代码下载

请从 github 下载。

https://github.com/comehope/f...

代码解读

定义 dom,描绘出 8 行 9 列的心形像素图案,其中 是指要填充颜色的像素点:

</>复制代码

居中显示:

</>复制代码

  1. html,body{
  2. height: 100%;
  3. display: flex;
  4. align-items: center;
  5. justify-content: center;
  6. background: linear-gradient(silver, white);
  7. }

设置心形的样式:

</>复制代码

  1. .heart {
  2. display: grid;
  3. grid-template-columns: repeat(9, 1fr);
  4. grid-gap: 2px;
  5. }
  6. .heart > * {
  7. width: 1em;
  8. height: 1em;
  9. border-radius: 0.1em;
  10. font-size: 30px;
  11. }
  12. .heart dot{
  13. background: red;
  14. }

定义淡入淡出动画:

</>复制代码

  1. .heart dot{
  2. filter: opacity(0);
  3. animation: animation 5s ease-out infinite;
  4. }
  5. @keyframes animation{
  6. 0%{
  7. filter: opacity(0);
  8. transform: translateY(-10em);
  9. }
  10. 25%{
  11. filter: opacity(1);
  12. transform: translateY(0);
  13. }
  14. 75%{
  15. filter: opacity(1);
  16. transform: translateY(0);
  17. }
  18. 100%{
  19. filter: opacity(0);
  20. transform: translateY(10em);
  21. }
  22. }

最后,让各像素点按不同时间入场,增强动画效果:

</>复制代码

  1. .heart dot:nth-of-type(2n) {
  2. animation-delay: 0.2s;
  3. }
  4. .heart dot:nth-of-type(3n) {
  5. animation-delay: 0.3s;
  6. }
  7. .heart dot:nth-of-type(4n) {
  8. animation-delay: 0.4s;
  9. }
  10. .heart dot:nth-of-type(5n) {
  11. animation-delay: 0.5s;
  12. }
  13. .heart dot:nth-of-type(6n) {
  14. animation-delay: 0.6s;
  15. }
  16. .heart dot:nth-of-type(7n) {
  17. animation-delay: 0.7s;
  18. }
  19. .heart dot:nth-of-type(8n) {
  20. animation-delay: 0.8s;
  21. }
  22. .heart dot:nth-of-type(9n) {
  23. animation-delay: 0.9s;
  24. }
  25. .heart dot:nth-of-type(10n) {
  26. animation-delay: 1.0s;
  27. }
  28. .heart dot:nth-of-type(11n) {
  29. animation-delay: 1.1s;
  30. }

大功告成!

知识点

grid-template-columns https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns

grid-gap https://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap

:nth-of-type() https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type

animation-delay https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay

translateY() https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateY

filter https://developer.mozilla.org/en-US/docs/Web/CSS/filter

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52330.html

相关文章

  • 前端每日实战20# 视频演示何用 CSS 亲节创作一颗像素风格爱心

    摘要:效果预览按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。可交互视频教程此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。源代码下载请从下载。 showImg(https://segmentfault.com/img/bVbcWJi?w=500&h=500); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。 https://codepe...

    lbool 评论0 收藏0
  • 前端每日实战 2018 年 5 月份项目汇总(共 30 个项目)

    摘要:过往项目年月份项目汇总共个项目年月份发布的项目前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书频演示如何用纯创作一种按钮被瞄准的交互特效视频演示如何用纯创作一个同心圆弧旋转特效视频演 过往项目 2018 年 4 月份项目汇总(共 8 个项目) 2018 年 5 月份发布的项目 《前端每日实战》专栏每天分解一个前端项目,用视频记录...

    array_huang 评论0 收藏0
  • 前端每日实战 2018 年 5 月份项目汇总(共 30 个项目)

    摘要:过往项目年月份项目汇总共个项目年月份发布的项目前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书频演示如何用纯创作一种按钮被瞄准的交互特效视频演示如何用纯创作一个同心圆弧旋转特效视频演 过往项目 2018 年 4 月份项目汇总(共 8 个项目) 2018 年 5 月份发布的项目 《前端每日实战》专栏每天分解一个前端项目,用视频记录...

    liaoyg8023 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<