当前位置:首页 > VUE

vue实现左侧抽屉

2026-02-20 04:41:53VUE

Vue 实现左侧抽屉

使用 Vue 实现左侧抽屉可以通过多种方式完成,以下是几种常见的方法:

使用 Element UI 的 Drawer 组件

Element UI 提供了现成的 Drawer 组件,可以快速实现左侧抽屉效果。

安装 Element UI:

npm install element-ui

在 Vue 文件中引入并使用 Drawer 组件:

vue实现左侧抽屉

<template>
  <div>
    <el-button @click="drawer = true" type="primary">打开抽屉</el-button>
    <el-drawer
      title="标题"
      :visible.sync="drawer"
      direction="ltr"
      :before-close="handleClose">
      <span>抽屉内容</span>
    </el-drawer>
  </div>
</template>

<script>
export default {
  data() {
    return {
      drawer: false
    }
  },
  methods: {
    handleClose(done) {
      // 关闭前的回调
      done()
    }
  }
}
</script>

使用 Vue 原生实现

如果不依赖第三方库,可以通过 Vue 的原生功能实现抽屉效果。

<template>
  <div>
    <button @click="toggleDrawer">打开抽屉</button>
    <div class="drawer" :class="{ 'drawer-open': isOpen }">
      <div class="drawer-content">
        <span>抽屉内容</span>
        <button @click="toggleDrawer">关闭</button>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isOpen: false
    }
  },
  methods: {
    toggleDrawer() {
      this.isOpen = !this.isOpen
    }
  }
}
</script>

<style>
.drawer {
  position: fixed;
  top: 0;
  left: -300px;
  width: 300px;
  height: 100%;
  background: #fff;
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);
  transition: left 0.3s ease;
}
.drawer-open {
  left: 0;
}
</style>

使用 Vuetify 的 Navigation Drawer

Vuetify 也提供了 Navigation Drawer 组件,适合 Material Design 风格的应用。

vue实现左侧抽屉

安装 Vuetify:

npm install vuetify

在 Vue 文件中使用 Navigation Drawer:

<template>
  <v-app>
    <v-navigation-drawer v-model="drawer" absolute temporary>
      <v-list>
        <v-list-item>
          <v-list-item-content>
            <v-list-item-title>抽屉内容</v-list-item-title>
          </v-list-item-content>
        </v-list-item>
      </v-list>
    </v-navigation-drawer>
    <v-btn @click="drawer = !drawer">打开抽屉</v-btn>
  </v-app>
</template>

<script>
export default {
  data() {
    return {
      drawer: false
    }
  }
}
</script>

使用 CSS 过渡效果

可以通过 CSS 过渡效果增强抽屉的打开和关闭动画。

<template>
  <div>
    <button @click="toggleDrawer">打开抽屉</button>
    <div class="drawer-overlay" v-if="isOpen" @click="toggleDrawer"></div>
    <div class="drawer" :class="{ 'drawer-open': isOpen }">
      <span>抽屉内容</span>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isOpen: false
    }
  },
  methods: {
    toggleDrawer() {
      this.isOpen = !this.isOpen
    }
  }
}
</script>

<style>
.drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
}
.drawer {
  position: fixed;
  top: 0;
  left: -300px;
  width: 300px;
  height: 100%;
  background: #fff;
  z-index: 1000;
  transition: transform 0.3s ease;
}
.drawer-open {
  transform: translateX(300px);
}
</style>

以上方法可以根据项目需求选择适合的方式实现左侧抽屉功能。

标签: 抽屉vue
分享给朋友:

相关文章

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue 实现搜索

vue 实现搜索

实现 Vue 搜索功能 在 Vue 中实现搜索功能通常涉及以下几个关键步骤: 数据绑定与输入监听 使用 v-model 双向绑定搜索输入框的值,监听用户输入: <template>…

vue实现登录检验

vue实现登录检验

实现登录状态检验的方法 在Vue中实现登录状态检验通常涉及前端路由守卫、Token验证以及与后端的交互。以下是几种常见的方法: 使用路由守卫进行登录验证 通过Vue Router的beforeEac…

vue实现扫码

vue实现扫码

Vue 实现扫码功能 使用 vue-qrcode-reader 库 安装 vue-qrcode-reader 库: npm install vue-qrcode-reader 在 Vue 组件中引入…

vue实现添加div

vue实现添加div

在 Vue 中动态添加 div 元素 使用 v-for 指令动态渲染 div 通过 v-for 可以基于数组数据动态生成多个 div 元素。在模板中绑定数组数据,Vue 会自动遍历数组并为每个元素创建…