当前位置:首页 > VUE

vue实现底部波浪

2026-02-11 04:44:25VUE

实现底部波浪效果的方法

在Vue中实现底部波浪效果,可以通过CSS绘制波浪图形或使用SVG波浪路径。以下是两种常见实现方式:

使用CSS绘制波浪

通过CSS的border-radius和伪元素创建波浪形状:

<template>
  <div class="wave-container">
    <!-- 页面内容 -->
    <div class="wave"></div>
  </div>
</template>

<style>
.wave-container {
  position: relative;
  height: 100vh;
}

.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
</style>

调整border-radius的百分比可改变波浪曲率,例如:

vue实现底部波浪

  • 50% 50% 0 0 / 60% 60% 0 0 更平缓
  • 70% 70% 0 0 / 30% 30% 0 0 更陡峭

使用SVG波浪路径

通过SVG的path元素创建精确波浪图形:

<template>
  <div class="wave-container">
    <!-- 页面内容 -->
    <svg class="wave" viewBox="0 0 1200 120" preserveAspectRatio="none">
      <path d="M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z" opacity=".25" fill="#4facfe"></path>
      <path d="M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z" opacity=".5" fill="#4facfe"></path>
      <path d="M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,248.8-84.81V0Z" fill="#4facfe"></path>
    </svg>
  </div>
</template>

<style>
.wave-container {
  position: relative;
  height: 100vh;
}

.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
}
</style>

动态波浪动画

添加CSS动画让波浪产生流动效果:

vue实现底部波浪

.wave {
  animation: wave 3s linear infinite;
}

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

对于SVG方案,可修改pathd属性值实现更复杂的波浪运动。

响应式调整

通过媒体查询适应不同屏幕尺寸:

@media (max-width: 768px) {
  .wave {
    height: 50px;
  }
}

第三方库方案

使用专为Vue设计的波浪组件库如vue-waves

  1. 安装:npm install vue-waves
  2. 使用:
    <template>
    <vue-waves :color="'#4facfe'" :height="100"/>
    </template>

这种方式可快速实现复杂波浪效果,支持自定义参数。

标签: 波浪vue
分享给朋友:

相关文章

vue实现下拉菜单

vue实现下拉菜单

实现下拉菜单的基本思路 使用Vue实现下拉菜单可以通过动态绑定v-show或v-if控制菜单显示隐藏,结合事件监听(如@click或@mouseenter)触发状态切换。以下是两种常见实现方式:…

vue中如何实现循环

vue中如何实现循环

在 Vue 中实现循环 Vue 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法为…

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-se…

vue 实现关闭

vue 实现关闭

Vue 实现关闭功能的方法 在Vue中实现关闭功能通常涉及组件销毁、模态框隐藏或路由跳转等场景。以下是几种常见实现方式: 销毁当前组件 使用v-if或v-show控制组件显示/隐藏,适用于局部组件:…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础…

vue怎么实现

vue怎么实现

Vue 实现方法 Vue 是一个流行的前端框架,用于构建用户界面。以下是几种常见的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。 <input v…