当前位置: 首页 > news >正文

VUE环境下 CSS3+JS 实现发牌 翻牌

创建牌容器(关键点:overflow:hidden):

<div class="popup-box"></div>
.popup-box {position: absolute;width: 100vw;height: 100vh;top: 0px;left: 0;overflow: hidden;
}

创建每一张牌《固定十张牌》:

1.父级(卡牌未放开显示背景) 卡牌子级(显示卡牌内容)

<div class="popup-box-card" :class="['popup-box-card-cws' + index, item.show && 'popup-box-card' + index]" v-for="(item, index) in cardList"><div class="popup-top-box-card-son":class="[item.show && 'popup-box-card-son-rotate']"><div class="popup-box-card-son-box"><img :src="item.Url"><div>Name</div><div>Describe</div></div></div>
</div>
.popup-top-box-card {position: absolute;background: url('https://oss-test.newplay7.com/20221213/16709168590023654.png') no-repeat;background-size: 100% 100%;transform: scale(0.51) rotateY(0deg);margin-top: 0;left: 210px;top: calc(100vh - 400px);transition: all 0.2s;}.popup-top-box-card-son {width: 100%;height: 100%;background: url('https://gd-hbimg.huaban.com/7057f0b053d03b1e3034f902ad252edd6c930fbef8d15-GA6eJ7_fw658') no-repeat;background-size: 100% 100%;opacity: 0;transform: rotateY(180deg);
}

初始化牌位置:

  .popup-top-box-card-cws1,.popup-top-box-card-cws4,.popup-top-box-card-cws7 {left: 230px;}.popup-top-box-card-cws2,.popup-top-box-card-cws5,.popup-top-box-card-cws8 {left: 220px;}

 开始发牌:

1.通过变量show来控制 添加 'popup-top-box-card' + index 给牌Class 改变position top left  实现发牌动作  rotateY(180deg) 实现翻牌动作

2.通过变量show来控制卡牌子级 添加 ‘popup-box-card-son-rotate’ opacity 延迟0.05s显示0.2s卡牌内容

JS 发牌方法

const addCardAnimation = (inx: number, arr: CardItemType[]) => {return new Promise(revele => {arr[inx] = { ...arr[inx], show: true}cardList.value = arrsetTimeout(() => {revele(true)}, 400)})
}for (let i = 0; i < cardList.value.length; i++) {await addCardAnimation(i, cardList.value)
}

 

http://www.lryc.cn/news/145421.html

相关文章:

  • WSL Opencv with_ffmpeg conan1.60.0
  • Android中正确使用Handler的姿势
  • webSocket前后端交互pc端版
  • Java-day13(枚举与注解)
  • vue PDF或Word转换为HTML并保留原有样式
  • 华硕笔记本摄像头倒置怎么办?华硕笔记本摄像头上下颠倒怎么调整
  • 本地套接字通信
  • 数据结构(Java实现)-优先级队列(堆)
  • 算法通关村第8关【黄金】| 寻找祖先问题
  • 栈和队列(详解)
  • iOS开发Swift-3-UI与按钮Button-摇骰子App
  • 1、[春秋云镜]CVE-2022-32991
  • pdf如何删除其中一页?了解一下这几种删除方法
  • PO设计模式是selenium自动化测试中最佳的设计模式之一
  • yolov8使用C++推理的流程及注意事项
  • 深度思考计算机网络面经之二
  • 老年人跌倒智能识别算法 opencv
  • ros2官方文档(基于humble版本)学习笔记
  • 可拖动表格
  • C++语法基础
  • Windi CSS和Tailwind CSS以及UnoCSS
  • c++ opencv将彩色图像按连通域区分
  • 〖程序员的自我修养 - 认知剖析篇⑩〗- 学习编程的高效率方法
  • 前端基础1——HTML标记语言
  • 2.1: Dubbo的基本应用-负载均衡,集群容错,服务降级
  • 正则常见问题及解决方案
  • docker发布项目及使用外部文件的情况处理
  • CSS 中哪些属性可以继承
  • vue cli构建的项目出现 Uncaught runtime errors
  • 透过源码理解Flutter InheritedWidget