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

让我来为你详细讲解如何使用纯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日

相关文章

  • 一文搞懂JavaScript如何实现图片懒加载

    一文搞懂JavaScript如何实现图片懒加载 在一个网站中,有大量的图片需要加载。而有些图片是用户可能看不到或者需要滚动到特定位置才能看到的,这时候我们就可以使用图片懒加载的技术,只在需要加载图片的时候进行加载,提高了网站页面的性能。 什么是图片懒加载 图片懒加载是一种技术,就是在用户滑动页面的时候,再去加载需要显示的图片,而不是在用户打开页面的时候全部加…

    css 2023年6月13日
    00
  • 修改输入框placeholder文字默认颜色-webkit-input-placeholder方法

    让我详细讲解一下“修改输入框placeholder文字默认颜色-webkit-input-placeholder方法”的完整攻略。 什么是 placeholder? 在网页中,input 标签常用于创建表单输入框,如输入用户名、密码、搜索等。placeholder 属性可以设置在输入框没有输入内容时,显示在输入框中的灰色提示文本,提示用户应该输入的内容。 问…

    css 2023年6月9日
    00
  • CSS教程(2):通过实例学习CSS背景

    下面是详细的攻略: CSS教程(2):通过实例学习CSS背景 1. 学习CSS背景概述 CSS的背景属性是页面设计中非常重要的一部分,我们可以通过CSS来改变元素的背景颜色、背景图片、背景位置以及背景的重复方式等。在学习CSS背景时,我们需要掌握的核心概念有以下四点: background-color:元素背景的颜色 background-image:元素背…

    css 2023年6月9日
    00
  • 详解CSS经典布局之Sticky footer布局

    下面是“详解CSS经典布局之Sticky footer布局”的完整攻略。 简介 Sticky footer布局是一种常用的网站页面布局方式。它的特点是底部的footer元素始终粘着页面底部,不会因内容高度不足而漂浮在中间或者底部。 实现思路 实现Sticky footer布局的关键在于以下两点: 父元素高度设置为100%。 footer元素使用绝对定位,并将…

    css 2023年6月11日
    00
  • jQuery如何设置背景颜色

    让我们来详细讲解一下如何使用jQuery设置背景颜色。 设置元素背景颜色 使用jQuery设置元素的背景颜色可以通过 css() 方法来实现,该方法可以设置CSS属性。 在 css() 方法中,可以传递一个对象来设置单个或多个 CSS 属性,例如: // 通过id设置元素的背景颜色 $("#elementId").css("ba…

    css 2023年6月9日
    00
  • ExtJs使用总结(非常详细)

    下面我将详细讲解“ExtJs使用总结(非常详细)”的完整攻略。 一、初识ExtJs 介绍了ExtJs是什么,包括MVVM架构、组件化、丰富的UI组件等 强调了ExtJs的学习曲线很陡峭,需要花费大量的时间学习 二、ExtJs组件基础 介绍了ExtJs的组件基础知识,包括容器组件、表单组件、布局等 通过示例代码演示了如何创建容器组件和表单组件 示例一:创建容器…

    css 2023年6月10日
    00
  • HTML和CSS的关键:盒子模型(Box model)

    HTML和CSS是网页制作基础技能,而盒子模型(Box model)是学习和使用这两种技术的关键。盒子模型是指网页中每一个元素都可以看做是一个长方形的盒子,该盒子包含了元素的内容、内边距(padding)、边框(border)和外边距(margin)。 盒子模型结构 盒子模型可以分为以下四个部分: 内容(Content):元素的真正内容,比如文本、图片; 内…

    css 2023年6月10日
    00
  • JavaScript中的style.display属性操作

    JavaScript中的style.display属性操作是一种常用的前端操作技术,用于控制 HTML 元素的显示与隐藏。下面我将为大家详细介绍如何使用JavaScript中的style.display属性来控制元素的显示与隐藏,以及一些常见的应用场景。 一、基本操作 使用style.display属性可以轻松地控制元素的显示与隐藏。其中,display属性…

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