当前位置:首页 > 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 的折叠面板组件。

<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 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡系统、第三方库集成以及 CSS 动画。以下是常见实现方法: 使用 Vue 过渡系统 通过 <transition>…

vue公共列表的实现

vue公共列表的实现

实现 Vue 公共列表组件 公共列表组件通常用于展示重复结构的数据,例如商品列表、用户列表等。以下是一个典型的实现方式: 基础实现 创建可复用的列表组件 List.vue: <tem…

vue实现autocomplete

vue实现autocomplete

Vue 实现 Autocomplete 功能 Vue 中实现 Autocomplete(自动完成)功能可以通过自定义组件或使用现有库完成。以下是几种常见方法: 方法一:使用 Vue 原生实现 创建…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖…

vue页面实现

vue页面实现

Vue 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…