如何使用纯CSS 实现类似于旗帜飘扬动画效果(附源码)

不言
发布: 2018-09-04 11:04:59
原创
3597 人浏览过

本篇文章给大家带来的内容是关于如何使用纯CSS 实现类似于旗帜飘扬动画效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

2019723753-5b47ed6dc710a_articlex.gif

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 15 个元素:

登录后复制

居中显示:

body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: black; }
登录后复制

定义容器尺寸:

.flag { width: 10em; height: 15em; font-size: 20px; }
登录后复制

设置线条样式:

.flag span { width: 0.25em; height: inherit; background-color: deepskyblue; }
登录后复制

让线条平铺:

.flag { display: flex; justify-content: space-between; }
登录后复制

增加 3d 透视效果:

.flag { transform: perspective(500px) rotateY(-20deg); }
登录后复制

定义左右移动的动画效果:

.flag span { animation: wave 1.5s ease-in-out infinite alternate; } @keyframes wave { to { transform: translateX(2em); } }
登录后复制

设置元素变量值:

.flag span:nth-child(1) { --n: 1; } .flag span:nth-child(2) { --n: 2; } /* 共 15 个元素,每元素的 --n 变量值等于它的序号。 */ /* 中间代码略 …… */ .flag span:nth-child(14) { --n: 14; } .flag span:nth-child(15) { --n: 15; }
登录后复制

让各线条分别延时启动动画,形成旗帜飘扬的效果:

.flag span { animation-delay: calc(var(--n) * -0.1s); }
登录后复制

最后,增加光影效果:

.flag span { background-color: ghostwhite; } @keyframes wave { to { transform: translateX(2em); background-color: deepskyblue; } }
登录后复制

大功告成!

相关推荐:

如何使用纯CSS实现小球变矩形背景的按钮悬停效果(附源码)

如何使用CSS和D3实现小鱼游动的交互动画(附代码)

以上是如何使用纯CSS 实现类似于旗帜飘扬动画效果(附源码)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!