当前位置:首页 > 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实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue拖拽实现

vue拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…

tabbar 实现 vue

tabbar 实现 vue

在 Vue 中实现 TabBar 功能可以通过多种方式完成,以下是几种常见的方法: 使用 Vue Router 结合自定义组件 创建一个自定义的 TabBar 组件,结合 Vue Router 实现…

vue实现增删

vue实现增删

Vue 实现增删功能 在 Vue 中实现增删功能通常涉及数据绑定、事件处理和列表渲染。以下是基于 Vue 2 或 Vue 3 的实现方法: 数据定义 初始化一个数组用于存储列表数据,并在 Vue 实…

vue实现webshell

vue实现webshell

Vue 实现 WebShell 使用 Vue 实现 WebShell 需要结合前端与后端的交互,通常通过 WebSocket 或 HTTP 协议与服务器通信。以下是一个基于 Vue 和 WebSock…

vue实现城市

vue实现城市

Vue 实现城市选择功能 使用 Element UI 的 Cascader 组件 Element UI 提供了一个 Cascader 级联选择器组件,非常适合实现城市选择功能。需要先安装 Elemen…