纯CSS实现波浪移动效果的示例

yizhihongxing

让我来为你详细讲解如何使用纯CSS实现波浪移动效果。

步骤一:HTML结构

首先,我们需要创建HTML结构。本例中,我们需要一个容器元素和两个波浪元素。代码示例如下:

<div class="wave-container">
  <div class="wave"></div>
  <div class="wave"></div>
</div>

步骤二:CSS样式

接下来,我们需要为这些元素添加CSS样式。我们将使用伪元素和transform属性来创建波浪效果。代码示例如下:

.wave-container {
    position: relative;
    width: 100%;
    height: 150px;
    background-color: #fff;
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-color: #4c95bd;
}

.wave::before, .wave::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 200%;
    height: 100%;
    border-radius: 50%;
    background-color: inherit;
    transform: translateX(-50%);
}

.wave::before {
    left: -100%;
    animation: wave 4s ease-in-out infinite;
}

.wave::after {
    left: 0;
    animation: wave 4s ease-in-out 2s infinite;
}

@keyframes wave {
    0% {
        transform: translateX(0) scale(1);
    }
    50% {
        transform: translateX(-25%) scale(0.8);
    }
    100% {
        transform: translateX(-50%) scale(1);
    }
}

在上面的代码中,我们使用了伪元素(::before和::after)和transform属性来创建波浪效果。其中,伪元素的宽度为200%,高度为100%,利用了圆的边界特性来模拟波浪的形状。transform属性用于移动和缩放波浪的位置和大小。

同时,我们也为波浪元素添加了动画效果,让它们在水平方向上来回移动。动画使用了关键帧@keyframes,并在前50%的时间缩小波浪大小,后50%的时间恢复原大小。这样做的目的是为了让波浪看起来更加自然。

示例说明

下面是两个使用纯CSS实现波浪移动效果的示例说明,希望对你有所帮助。

示例一:将波浪效果应用于卡片背景

在这个示例中,我们将波浪效果应用于卡片的背景,代码如下:

<div class="card">
  <div class="wave-container">
    <div class="wave"></div>
    <div class="wave"></div>
  </div>
  <div class="content">
    <h2>卡片标题</h2>
    <p>这是一段卡片内容。这是一段卡片内容。这是一段卡片内容。</p>
  </div>
</div>
.card {
    position: relative;
    width: 300px;
    height: 200px;
    margin: 20px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 20px;
    text-align: center;
    color: #fff;
}

.wave-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-color: #4c95bd;
}

.wave::before, .wave::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 200%;
    height: 100%;
    border-radius: 50%;
    background-color: inherit;
    transform: translateX(-50%);
}

.wave::before {
    left: -100%;
    animation: wave 4s ease-in-out infinite;
}

.wave::after {
    left: 0;
    animation: wave 4s ease-in-out 2s infinite;
}

@keyframes wave {
    0% {
        transform: translateX(0) scale(1);
    }
    50% {
        transform: translateX(-25%) scale(0.8);
    }
    100% {
        transform: translateX(-50%) scale(1);
    }
}

示例二:将波浪效果应用于顶部导航栏

在这个示例中,我们将波浪效果应用于顶部导航栏,让它看起来更加生动有趣,代码如下:

<nav class="navbar">
  <ul>
    <li><a href="#">首页</a></li>
    <li><a href="#">产品</a></li>
    <li><a href="#">服务</a></li>
    <li><a href="#">关于</a></li>
  </ul>
  <div class="wave-container">
    <div class="wave"></div>
    <div class="wave"></div>
  </div>
</nav>
.navbar {
    position: relative;
    height: 60px;
    background-color: #4c95bd;
}

ul {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

li {
    margin: 0 20px;
}

a {
    color: #fff;
    text-decoration: none;
}

.wave-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background-color: #fff;
}

.wave::before, .wave::after {
    content: "";
    position: absolute;
    bottom: 0;
    width: 200%;
    height: 100%;
    border-radius: 50%;
    background-color: inherit;
    transform: translateX(-50%);
}

.wave::before {
    left: -100%;
    animation: wave 4s ease-in-out infinite;
}

.wave::after {
    left: 0;
    animation: wave 4s ease-in-out 2s infinite;
}

@keyframes wave {
    0% {
        transform: translateX(0) scale(1);
    }
    50% {
        transform: translateX(-25%) scale(0.8);
    }
    100% {
        transform: translateX(-50%) scale(1);
    }
}

在以上示例中,我们通过为波浪的颜色和背景颜色设置不同的值,实现了更丰富多彩的效果。同时,我们也调整了波浪的高度和位置,让它更适应不同的应用场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯CSS实现波浪移动效果的示例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • React+TypeScript+webpack4多入口配置详解

    这里就为您详细讲解“React+TypeScript+webpack4多入口配置详解”。 一、概述 在前端开发中,React是目前比较流行的UI库,而TypeScript则是JavaScript的超集,通过在JavaScript基础上增加类型系统等特性,提高了代码的可靠性。 在React和TypeScript项目中,我们通常需要使用webpack作为打包工具…

    css 2023年6月9日
    00
  • 详解移动端h5页面根据屏幕适配的四种方案

    下面是详解移动端H5页面根据屏幕适配的四种方案的完整攻略: 背景 在移动设备上,我们经常需要让网页在不同屏幕尺寸下呈现相同的效果,这就要求我们对移动端的H5页面做好适配。在这篇攻略中,我们将介绍四种移动端H5页面根据屏幕适配的方案,这四种方案分别是:viewport+rem、Media Queries、Flexible、Bootstrap 方案一:Viewp…

    css 2023年6月10日
    00
  • javascript五图轮播切换实用版

    首先,本文将介绍如何使用JavaScript实现一个基础的轮播切换功能。本文所使用的代码可以在此Github仓库中查看。 第一步:HTML结构 首先,在HTML中,我们需要一个容器元素,和需要轮播展示的图片元素。以下是一份示例代码: <div class="carousel-container"> <img src=&q…

    css 2023年6月10日
    00
  • jQuery获取样式中颜色值的方法

    下面是关于“jQuery获取样式中颜色值的方法”的完整攻略。 一、概述 在使用 jQuery 对 DOM 元素进行操作时,有时我们需要获取元素的 CSS 样式中的某个属性的值,如颜色值。jQuery 提供了许多方法来获取样式属性的值,如 .css() 方法、.attr() 方法、.prop() 方法等,但是这些方法通常只能获取 CSS 样式中的属性值,而不能…

    css 2023年6月9日
    00
  • 四种CSS常用的选择器使用方法和注意事项

    当我们编写样式表时,我们需要选中一些HTML元素,并定义它们的样式。选择器是可以选择特定元素的CSS规则。在CSS中,有四种常用的选择器,分别是:1. ID选择器2. 类选择器3. 元素选择器4. 后代选择器 下面将详细讲解这四种选择器的使用方法和注意事项: 1. ID选择器 ID选择器可以用来为单个元素设置样式。我们可以通过HTML标签中的“id”属性来定…

    css 2023年6月9日
    00
  • div层调整z-index属性在IE中无效原因分析及解决方法

    首先我们需要了解一下 z-index 属性的作用。z-index 属性可以设置元素的层叠顺序,即决定了哪个元素位于其他元素之上。在浏览器中,所有的元素都存在于一个包含层级的栈中,z-index 就是用来调整元素在栈中的层级。z-index 的值越大,元素就越靠近栈的顶层,就越容易被用户看见。 然而,在 IE(特别是 IE6/7)中,使用 z-index 属性…

    css 2023年6月10日
    00
  • CSS完成视差滚动效果

    CSS完成视差滚动效果是一种通过改变不同层级元素之间的移动速度差异来实现的动画效果。以下是完整攻略: 1. 准备工作 1.1 HTML结构 为了实现视差滚动效果,需要对网页结构进行分层处理,即将内容按照不同层级置于不同的容器中,如下所示: <div class="parallax-wrapper"> <div class…

    css 2023年6月10日
    00
  • Dreamweaver中怎么让html网页中的table边框细线显示?

    在 Dreamweaver 中让 HTML 网页中的 table 边框细线显示可以通过 CSS 样式来实现。具体步骤如下: 1.在 HTML 文件的 head 标签内添加样式表。 <head> <style> table { border-collapse: collapse; /* 合并表格边框 */ border-spacing:…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部