如何用纯 CSS 创作出平滑的层叠海浪特效

效果预览
按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
https://codepen.io/comehope/pen/JvmBdE
可交互视频教程
此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
请用 chrome, safari, edge 打开观看。
https://scrimba.com/p/pEgDAM/cp2edUD
源代码下载
每日前端实战系列的全部源代码请从 github 下载:
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,容器中包含一行文本和3条做海浪特效的 <span>:
<div class="sea">
    <p class="title">the sea</p>
    <span class="wave"></span>
    <span class="wave"></span>
    <span class="wave"></span>
</div>
居中显示:
html, body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(antiquewhite, navajowhite);
}
设置容器样式:
.sea {
    width: 300px;
    height: 300px;
    background-color: whitesmoke;
    background-image: linear-gradient(
        darkblue,
        rgba(255, 255, 255, 0) 80%,
        rgba(255, 255, 255, 0.5));
    border-radius: 5px;
    box-shadow: 0 2px 30px rgba(0, 0, 0, 0.2);
}
设置文字样式:
.sea {
    position: relative;
}
.sea .title {
    color: white;
    font-size: 24px;
    font-family: serif;
    text-align: center;
    line-height: 250px;
    text-transform: uppercase;
    letter-spacing: 0.4em;
    position: absolute;
    z-index: 1;
    width: 100%;
}
制作海浪动画效果:
.sea .wave {
    position: absolute;
    top: -250px;
    left: -100px;
    width: 500px;
    height: 500px;
    background: deepskyblue;
    border-radius: 43%;
    filter: opacity(0.4);
    animation: drift linear infinite;
}
.sea .wave:nth-of-type(1) {
    animation-duration: 5s;
}
.sea .wave:nth-of-type(2) {
    animation-duration: 7s;
}
.sea .wave:nth-of-type(3) {
    animation-duration: 9s;
}
@keyframes drift {
    from {
        transform: rotate(360deg);
    }
}
加大海浪的波动幅度,增加颜色差异:
.sea .wave {
    transform-origin: 50% 48%;
}
.sea .wave:nth-of-type(3) {
    background-color: orangered;
    filter: opacity(0.1);
}
最后,隐藏容器外的内容:
.sea {
    overflow: hidden;
}
大功告成!
原文地址:https://segmentfault.com/a/1190000014895634
如何用纯 CSS 创作出平滑的层叠海浪特效的更多相关文章
- 前端每日实战:24# 视频演示如何用纯 CSS 创作出平滑的层叠海浪特效
		
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/JvmBdE 可交互视频教程 此视频 ...
 - 24.纯 CSS 创作出平滑的层叠海浪特效
		
原文地址:https://segmentfault.com/a/1190000014895634 感想:这里的波浪只是侧面的,利用几个平面一部分弧旋转得到. HTML代码: <div class ...
 - 如何用纯 CSS 创作一种侧立图书的特效
		
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/deVgRM 可交互视频教程 此视 ...
 - 如何用纯 CSS 创作一个 3D 文字跑马灯特效
		
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/GdrrZq 可交互视频教程 此视 ...
 - 如何用纯 CSS 创作一个容器厚条纹边框特效
		
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/YLqbXy 可交互视频教程 此视 ...
 - 如何用纯 CSS 创作一个菜单反色填充特效
		
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/qYMoPo 可交互视频教程 ...
 - 前端每日实战:14# 视频演示如何用纯 CSS 创作一种侧立图书的特效
		
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/deVgRM 可交互视频教程 此视频是可以交 ...
 - 前端每日实战:23# 视频演示如何用纯 CSS 创作一个菜单反色填充特效
		
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/qYMoPo 可交互视频教程 此视频是 ...
 - 前端每日实战:7# 视频演示如何用纯 CSS 创作一个 3D 文字跑马灯特效
		
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/GdrrZq 可交互视频教程 此视频是可以交 ...
 
随机推荐
- sublime 配置sftp代码自动上传(原)
			
1.首先安装Package Control 使用 ctrl+`快捷键 或者 菜单项View > Show Console 来调出命令界面 然后复制粘贴下面的Python代码到命令输入框中: im ...
 - flask 第四篇 模板语言jinja2
			
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
 - hive序列化和反序列化serde
			
一.简介 SerDe是Serializer/Deserializer的缩写.SerDe允许Hive读取表中的数据,并将其以任何自定义格式写回HDFS. 任何人都可以为自己的数据格式编写自己的SerDe ...
 - nodejs本版问题
			
接到一个新项目,前端用的是VUE,这就需要安装nodejs.记得之前安装的是V6.X,在npm install加载依赖库node_modules的时候ant-design-vue总是报错.看到同事用n ...
 - to_datetime 以及 dt.days、dt.months
			
Series类型的数据,经过 to_datetime 之后就可以用 pandas.Series.dt.day 和 pandas.Series.pd.month. import pandas as pd ...
 - AWS EC2 外网不能访问的坑
			
概述 今天我在 AWS EC2 上配置并启动了 nginx,但是通过外网不能访问,查了一下资料终于解决了,记录下来供以后开发时参考,相信对其它人也有用. 外网访问不了的原因 外网访问不了的原因不外乎有 ...
 - 阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
			
需要配置文件解析器这个对象 id配置时候必须叫做mutipartResolver 最终
 - Kafka 可视化工具(Kafka Tool)
			
Kafka 可视化工具 使用Kafka的小伙伴,有没有为无法直观地查看 Kafka 的 Topic 里的内容而发过愁呢? 下面推荐给大家一款带有可视化页面Kafka工具:Kafka Tool (目前最 ...
 - OpenID简介
			
OpenID 是一个以用户为中心的数字身份识别框架,它具有开放.分散性.OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可 ...
 - spring boot starter是什么
			
参考自:https://www.cnblogs.com/EasonJim/p/7615801.html Spring Boot中Starter是什么 比如我们要在Spring Boot中引入Web M ...