当前位置:首页 > VUE

vue实现折叠翻转卡片

2026-02-24 20:37:51VUE

Vue 实现折叠翻转卡片

基本结构

在 Vue 中实现折叠翻转卡片效果,可以通过结合 CSS 过渡和动态类名绑定来实现。以下是一个完整的实现方案。

vue实现折叠翻转卡片

HTML 模板部分

<template>
  <div class="flip-card" @click="toggleFlip">
    <div class="flip-card-inner" :class="{ 'flipped': isFlipped }">
      <div class="flip-card-front">
        <slot name="front"></slot>
      </div>
      <div class="flip-card-back">
        <slot name="back"></slot>
      </div>
    </div>
  </div>
</template>

JavaScript 逻辑部分

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

CSS 样式部分

<style scoped>
.flip-card {
  perspective: 1000px;
  width: 200px;
  height: 300px;
  cursor: pointer;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
}

.flip-card-front,
.flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.flip-card-front {
  background-color: #f0f0f0;
}

.flip-card-back {
  background-color: #e0e0e0;
  transform: rotateY(180deg);
}

.flipped {
  transform: rotateY(180deg);
}
</style>

使用示例

<FlipCard>
  <template v-slot:front>
    <div>正面内容</div>
  </template>
  <template v-slot:back>
    <div>背面内容</div>
  </template>
</FlipCard>

关键点说明

  • perspective:设置透视距离,产生3D效果。
  • transform-style: preserve-3d:保持子元素的3D变换。
  • backface-visibility: hidden:隐藏背面元素。
  • slot:使用具名插槽灵活插入内容。
  • toggleFlip:通过点击事件切换翻转状态。

扩展选项

  • 可以添加参数控制自动翻转时间。
  • 可以通过CSS变量自定义动画时间和翻转方向。
  • 可以添加手势支持实现滑动翻转。

标签: 卡片vue
分享给朋友:

相关文章

vue实现签名

vue实现签名

实现Vue签名功能的步骤 安装签名库 使用vue-signature库可以快速实现签名功能。通过npm或yarn安装: npm install vue-signature --save # 或 ya…

vue实现批量

vue实现批量

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

vue实现动画

vue实现动画

Vue 实现动画的方法 Vue 提供了多种方式来实现动画效果,包括内置的过渡系统、第三方动画库以及直接操作 CSS 或 JavaScript 动画。 使用 Vue 内置过渡系统 Vue 的 <…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <ul…

甘特图vue实现

甘特图vue实现

甘特图 Vue 实现方法 使用开源库 vue-ganttastic 安装依赖: npm install vue-ganttastic 基础实现代码: <template> <…

vue实现datalist

vue实现datalist

使用 Vue 实现 HTML5 的 datalist 功能 HTML5 的 <datalist> 元素提供了一种自动完成输入框的功能,允许用户在输入时从预定义的选项列表中选择。以下是几种在…