当前位置:首页 > VUE

vue实现收缩表单

2026-02-19 02:58:22VUE

Vue 实现收缩表单的方法

使用 v-show 或 v-if 控制显示

通过 Vue 的 v-showv-if 指令可以轻松实现表单的收缩和展开功能。v-show 通过 CSS 的 display 属性控制显示,适合频繁切换的场景;v-if 会销毁和重建 DOM 节点,适合不频繁切换的场景。

<template>
  <div>
    <button @click="toggleForm">切换表单</button>
    <form v-show="isFormVisible">
      <!-- 表单内容 -->
      <input type="text" placeholder="输入内容">
    </form>
  </div>
</template>

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

使用 CSS 过渡动画

为表单的收缩和展开添加过渡效果,可以通过 Vue 的 <transition> 组件结合 CSS 实现平滑的动画效果。

<template>
  <div>
    <button @click="toggleForm">切换表单</button>
    <transition name="slide">
      <form v-show="isFormVisible">
        <!-- 表单内容 -->
        <input type="text" placeholder="输入内容">
      </form>
    </transition>
  </div>
</template>

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

<style>
.slide-enter-active, .slide-leave-active {
  transition: all 0.3s ease;
}
.slide-enter, .slide-leave-to {
  opacity: 0;
  transform: translateY(-10px);
}
</style>

动态调整表单高度

如果需要更精细地控制表单的收缩和展开,可以通过动态绑定样式或类名来实现高度变化。

<template>
  <div>
    <button @click="toggleForm">切换表单</button>
    <form :style="{ height: formHeight }">
      <!-- 表单内容 -->
      <input type="text" placeholder="输入内容">
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isFormExpanded: false,
      expandedHeight: '200px',
      collapsedHeight: '0px'
    }
  },
  computed: {
    formHeight() {
      return this.isFormExpanded ? this.expandedHeight : this.collapsedHeight
    }
  },
  methods: {
    toggleForm() {
      this.isFormExpanded = !this.isFormExpanded
    }
  }
}
</script>

<style>
form {
  overflow: hidden;
  transition: height 0.3s ease;
}
</style>

使用第三方库

如果需要更复杂的交互效果,可以借助第三方库如 vue-collapseelement-ui 的折叠面板组件。

vue实现收缩表单

<template>
  <div>
    <el-collapse v-model="activeNames">
      <el-collapse-item title="表单" name="1">
        <form>
          <!-- 表单内容 -->
          <input type="text" placeholder="输入内容">
        </form>
      </el-collapse-item>
    </el-collapse>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeNames: []
    }
  }
}
</script>

以上方法可以根据实际需求选择适合的方式实现表单的收缩功能。

标签: 表单vue
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue nexttick实现

vue nexttick实现

Vue 中 nextTick 的实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它的核心实现依赖于 JavaScript 的事件循环机制。 基本…

vue实现加减

vue实现加减

Vue 实现加减功能 在 Vue 中实现加减功能可以通过数据绑定和事件监听来完成。以下是一个简单的实现方法: 模板部分 <template> <div> <…

vue实现单击

vue实现单击

Vue 实现单击事件的方法 在 Vue 中实现单击事件可以通过 v-on 指令或简写的 @ 符号绑定事件处理器。以下是几种常见的实现方式: 基础用法 通过 v-on:click 或 @click 绑…

实现vue vm

实现vue vm

Vue VM 实现方法 Vue VM(ViewModel)是 Vue.js 的核心概念之一,负责连接视图(View)和数据模型(Model)。以下是实现 Vue VM 的几种方法: 使用 Vue 实…

vue实现rem适配

vue实现rem适配

Vue 项目中实现 REM 适配 REM(Root EM)是一种基于根元素(html)字体大小的相对单位,常用于移动端适配。以下是在 Vue 项目中实现 REM 适配的详细方法。 安装 postcs…