vue3实现卡片翻牌

2023-10-27

前言

最近重刷诡秘之主,感觉里面的塔罗牌挺有意思,于是做了一个简单的塔罗牌翻牌动画(vue3+vite+ts)

一、操作步骤

1.布局

首先我们定义一个整体的塔罗牌盒子,在盒子里放入多张塔罗牌,每张塔罗牌是由背面牌和正面牌组成,我们分别赋予类名front,back;
在单张塔罗牌中我们除了默认的tarotItem样式外,添加了一个动态样式open用于实现切换牌面。

<template>
  <div class="tarotBox">
    <div class="tarotItem" v-for="item in tarot" @click="changeTarot(item)"
         :class="item.value?'open':''">
      <img class="back" src="../front.jpg">
      <img class="front" src="../0.jpg">
    </div>
  </div>
</template>

2.操作

我们定义一个塔罗牌数据数组,通过其中的属性value对动态类进行控制;再编写一个函数changeTarot用于改变类open的添加和删除

<script setup lang="ts">
import {ref} from "vue";

//塔罗牌数据数组
const tarot = ref([{
  name: '1',
  value: false
}]);

//牌面进行切换
const changeTarot= (item: any) => {
  item.value = !item.value
}

</script>

3.样式

塔罗牌默认样式是背面在上,因此设置正面牌角度为180,背面牌角度为0,同时为两张牌设置过渡样式和过渡属性

//塔罗牌样式
img {
      width:110px;
      height: 200px;
      position: absolute;//确保牌在同一位置
      transform-style: preserve-3d;//过渡样式,3d
      transition: 1s transform;//过渡时间
      backface-visibility: hidden;//旋转到180度自动隐藏
}
//正面牌角度
.front {
     transform: rotateY(180deg);
}

//背面牌角度
.back {
     transform: rotateY(0deg);
}
</style>

当点击塔罗牌时,对应位置的塔罗牌样式发生变化,也就是下面我们所添加的样式类open

//翻牌样式
  .open {
    //正面牌角度
    .front {
      transform: rotateY(0deg);
    }

    //背面牌角度
    .back {
      transform: rotateY(180deg);
    }
  }

总结

源代码下载地址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3实现卡片翻牌 的相关文章

随机推荐

  • ebay的api开发技术说明,有点乱

    使用eBay API的基本步骤引入 开始eBay API 例如 以下基本步骤需要 1 注册开发者账号 https developer ebay com join Default aspx 2 选择API类型 eBay有大约6种API 开发语
  • QT自定义控件类,无法获取真实宽度和高度

    问题 自定义控件类 无法获取真实的高度和宽度 代码如下 头文件 ifndef ROUNDEDTOOLTIP H define ROUNDEDTOOLTIP H include
  • sql关键字的执行顺序

    sql语句关键词的执行顺序 from gt on gt outer join gt where gt group by gt cube rollup gt having gt select gt distinct gt order by g
  • 实现ssh简便登录和利用Polysh实现多台服务器批量管理

    在集群管理中我们经常需要远程跳转到其他服务器ssh username remote host p port 这里我们编写一个简单的python脚本实现远程需求 config py usr bin env python coding utf
  • gitlab切换登录账号信息

    1 提交成员的修改 首先是登录账号 饶了三路十八弯 终于 是如此简单 痛苦 git remote set url origin https lt 账号 gt lt 密码 gt lt 链接 gt PS lt gt 这两符号不是 按照 lt g
  • 堆排序

    堆排序分为两步 建堆和调整堆 这两步可以由一个函数完成 但这个函数每次只能调整一条线 每层选择一次左右 使其符合堆的定义 因此建堆需要从最后一个非叶子节点自底向上调整堆 每次调整堆时需要对比两个孩子与父节点的大小 将最大的孩子与父节点交换
  • 在pycharm中安装Git插件(windows)

    1 去官网下载git Git 下载 git scm com 进入页面 直接点击windows 就直接下载了 下面是下载的git的exe 2 双击安装 2 1 路径选择 我选择了 D software Git 也可以默认安装 2 2 组件安装
  • [Linux 配置Mysql] 在Linux上面 安装mysql 5.7数据库

    安装完成以后 我的数据库地址为 var lib mysql mysql 安装mysql5 7 1 先把postfix 和mariadb libs卸载掉 不然的会有依赖包冲突 root wolfcode rpm e postfix maria
  • MFC框架机制详解

    MFC框架机制详解 1 1 Windows消息机制要点 1 1 1 窗口过程 每个窗口会有一个称为窗口过程的回调函数 WndProc 它带有四个参数 分别为 窗口句柄 Window Handle 消息ID Message ID 和两个消息参
  • VS2017登陆失败:我们无法刷新此账户的凭证、我们无法添加此账户发送请求时出错、评估期已结束,请登录以解除产品锁定

    一 问题 点击登录后会显示如下窗口 忘了截图 图片截于 35条消息 Visual Studio 2017无法登录问题解决 kellyjucy的博客 CSDN博客 vs2017无法登陆 二 解决方法 我试过以下博主的第一 二个方法 但是我还是
  • TCO(总所有成本)

    一 引言 总所有成本TCO Total cost of ownership 是一种公司经常采用的技术评价标准 它的核心思想是在一定时间范围内所拥有的包括置业成本 acquisition cost 和每年总成本在内的总体成本 在某些情况下 这
  • Not registered via @EnableConfigurationProperties, marked as Spring component.........

    Not registered via EnableConfigurationProperties marked as Spring component or scanned via ConfigurationPropertiesScan 错
  • 星星之火-28:什么是CDMA的远近效应与功率控制?

    1 什么是功率远近效应与功率控制 移动通信是在运动过程中进行的 移动台之间会出现近处移动台干扰远处移动台的现象 称为远近效应 对于频分多址与时分多址的系统 远近效应并不是那么明显 然而码分多址 同一小区内的所有的用户 他们的载频的频率是相同
  • 时间操作之lubridate包

    目录 加载lubridate lubridate包有5个字母 y m d h m s 用5个字母创建一个时间向量 筛选时间 加载lubridate 加载包 library lubridate lubridate包有5个字母 y m d h
  • 阿里云ecs共享型s6怎么样,带宽操作系统选择区别?

    不错的 基本是一个主流和入门级别的阿里云ecs服务器 满足我们的一般个人和初创企业的建站需求的 价格便宜 性价比高 独立服务器不是和别人共享的 独立公网IP 不影响SEO 共享型实例采用非绑定CPU调度模式 每个vCPU会被随机分配到任何空
  • 如何在MySQL存储过程中保留注释

    如何在MySQL存储过程中保留注释 本来在MySQL的Store Procedure 里添加注释很简单 可惜如果用命令行客户端来导入备份的数据 注释就会被干掉 在存储过程BODY里面添加注释 解决办法 99999 Write your co
  • leetcode第88题“非递减顺序排列“是什么意思?

    我在遇到这个词的时候 确实是影响到了我对题目意思的判断 后来查清楚了 分享 给大家这个小知识点 非递减顺序排列即是指 数列递减 但不是单调递减 中间可以有重复 比如 8 6 6 3 2 1 1 2 3 4 5 递增排列 9 8 7 6 5
  • 如何识别linux是多少位,如何查看linux版本 如何查看LINUX是多少位

    1 查看内核版本命令 1 root q1test01 cat proc version Linux version 2 6 9 22 ELsmp bhcompile crowe devel redhat com gcc version 3
  • js浏览器兼容性的写法

    大致有以下五大类 1 元素查找问题2 DOM操作3 事件4 语法5 XML 一 元素查找问题 1 document all name 1 现有问题 Firefox不支持document all name 2 解决方法 使用getElemen
  • vue3实现卡片翻牌

    vue3实现塔罗牌翻牌 前言 一 操作步骤 1 布局 2 操作 3 样式 总结 前言 最近重刷诡秘之主 感觉里面的塔罗牌挺有意思 于是做了一个简单的塔罗牌翻牌动画 vue3 vite ts 一 操作步骤 1 布局 首先我们定义一个整体的塔罗