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

【组件】翻牌器效果

目录

  • 效果
  • 组件代码
  • 背景素材

效果

在这里插入图片描述

组件代码

<template><divclass="card-flop":style="{height: typeof height === 'number' ? `${height}px` : height,'--box-width': typeof boxWidth === 'number' ? `${boxWidth}px` : boxWidth,'--box-height': typeof boxHeight === 'number' ? `${boxHeight}px` : boxHeight,'--color': color}"><div:class="{ 'card-flop__number': true, 'is-comma': isNotNumber(number) }"v-for="(number, index) in countArray":key="`num-${index}`"><div v-if="isNotNumber(number)" class="card-flop__number-comma"><span>{{ number }}</span></div><div v-else class="card-flop__number-box" :style="{ transform: getTransform(number, index) }"><div v-for="(item, index) in numbers" class="card-flop__number-item" :key="`item-${index}`"><span>{{ item }}</span></div></div></div><div class="card-flop__unit"><span>{{ unit }}</span></div></div>
</template><script >
export default {name: 'CardFlopCom',components: {},props: {count: {type: [String, Number],default: 0},height: {type: Number,default: 32},boxWidth: {type: Number,default: 24},boxHeight: {type: Number,default: 32},unit: {type: String,default: '条'},color: {type: String,default: '#fff'}},data() {return {numbers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}},computed: {countArray() {// 将数字转换为带千位分隔符的字符串const formattedNumber = Number(this.count).toLocaleString()// 分割成数组,包括逗号return formattedNumber.split('')}},methods: {isNotNumber(number) {return [',', '.'].includes(number)},getTransform(number) {const offset = Number(number) * this.boxHeightreturn `translateY(-${offset}px)`}}
}
</script><style lang="scss" scoped>
.card-flop {display: flex;align-items: baseline;justify-content: center;&__number {height: var(--box-height);color: var(--color);background-size: 100% 100%;background-repeat: no-repeat;margin-right: 3px;overflow: hidden;&:not(.is-comma) {width: var(--box-width);// background-image: url('@/assets/images/screen-zhidu/card_flop_bg.png');background-image: url('~@/assets/images/screen-zhidu/card_flop_bg.png');}&.is-comma {margin-right: 2px;}&-box {transition: transform 1s ease-in-out;}&-item {width: var(--box-width);height: var(--box-height);display: flex;align-items: center;justify-content: center;span {font-weight: bold;font-size: 26px;}}}&__unit {font-size: 16px;color: rgba(225, 239, 255, 0.6);margin-left: 2px;}
}
</style>

背景素材

在这里插入图片描述

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

相关文章:

  • CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)
  • NX811NX816美光颗粒固态NX840NX845
  • 捋捋wireshark
  • c++学习之---模版
  • MyBatis-Flex 全面指南:下一代轻量级持久层框架实战入门
  • 第十六章 EMQX黑名单与连接抖动检测
  • WebSphere(WAS)
  • 新编辑器编写指南--给自己的备忘
  • xPSR
  • 鸿蒙网络数据传输案例实战
  • 【JavaEE】-- 网络原理
  • 1.RV1126-OPENCV 交叉编译
  • PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
  • CSS (mask)实现服装动态换色:创意与技术的完美融合
  • 基于51单片机的音乐盒汽车喇叭调音量proteus仿真
  • 彻底理解Spring三级缓存机制
  • MacOs 安装局域网 gitlab 记录
  • Flutter 与 Android 原生布局组件对照表(完整版)
  • 【产品经理从0到1】自媒体端产品设计
  • 017搜索之深度优先DFS——算法备赛
  • 解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]
  • Thinkphp6实现websocket
  • web-css
  • 关于 smali:2. 从 Java 到 Smali 的映射
  • 三、zookeeper 常用shell命令
  • 分布式流处理与消息传递——Paxos Stream 算法详解
  • 智变与重构:AI 赋能基础教育教学的范式转型研究报告
  • 平衡三进制
  • 针对Python开发的工具推荐及分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等)
  • 960g轻薄本,把科技塞进巧克力盒子