数字动态翻牌器

news/2024/11/8 0:41:12/

数字动态翻牌器

最近项目里使用到了数字翻牌器,于是自己写了一个,动态的翻牌器

第一步创建一个组件页面,NumberCount.vue

思路:大概就是显示几位数,然后从0开始滚动到当前的数值的位置,在每一个位置都有0-9的数,然后就是往上滚动当前数值的次数到当前的数,话不多说上代码

<template><div class="chartNum"><div class="box-item"><li:class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"v-for="(item, index) in orderNum":key="index"><span v-if="!isNaN(item)"><i ref="numberItem">0123456789</i></span><span class="comma" v-else>{{ item }}</span></li></div></div>
</template>
<script>
export default {props: {// 显示的数字number: {type: Number,},// 显示的长度length: {type: Number,},},data() {return {orderNum: ['0', '0', '0', '0', '0', '0', '0', '0'], // 默认总数};},mounted() {setTimeout(() => {this.toOrderNum(this.number); // 这里输入数字即可调用}, 500);},watch: {number: {handler(val) {this.toOrderNum(val);},deep: true,},},methods: {// 设置文字滚动setNumberTransform() {const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量// eslint-disable-next-line no-restricted-globalsconst numberArr = this.orderNum.filter(item => !isNaN(item));console.log(numberItems.length, numberArr);// 结合CSS 对数字字符进行滚动,显示数量for (let index = 0; index < numberItems.length; index += 1) {const elem = numberItems[index];elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;}},// 处理总数字toOrderNum(num) {const numtext = num.toString();if (this.length) {if (numtext.length < this.length) {const numlist = `0${numtext}`; // 如未满固定数,添加"0"补位this.toOrderNum(numlist); // 递归添加"0"补位} else if (numtext.length === num.length) {this.orderNum = numtext.split(''); // 将其便变成数据,渲染至滚动数组}} else {this.orderNum = numtext.split('');}// 数字中加入逗号// const length = numtext.length / 3;// let count = '';// for (let i = 0; i < length; i += 1) {//   if (i === 0) {//     count += `${numtext.slice(i, i + 3)},`;//     console.log(count);//   } else if (i === length - 1) {//     count += numtext.slice(i * 3, i * 3 + 3);//     console.log(count);//   } else {//     count += `${numtext.slice(i * 3, i * 3 + 3)},`;//     console.log(count);//   }// }// this.orderNum = count.split('');this.setNumberTransform();},},
};
</script>
<style scoped lang="scss">
/*总量滚动数字设置*/
.box-item {position: relative;height: 34px;font-size: 20px;font-family: AzonixRegular;color: #021c25;line-height: 41px;text-align: center;list-style: none;writing-mode: vertical-lr;text-orientation: upright;
}
/* 默认逗号设置 */
.mark-item {width: 28px;height: 34px;position: relative;/* 背景图片 */background: url('~@/assets/images/overview/bg-chartNum.svg') no-repeat centercenter;background-size: 100% 100%;list-style: none;margin-right: 1px;& > span {position: absolute;width: 100%;height: 100%;bottom: 2px;left: 20%;font-size: 20px;writing-mode: vertical-rl;text-orientation: upright;}
}
/*滚动数字设置*/
.number-item {width: 28px;height: 34px;/* 背景图片 */background: url('~@/assets/images/overview/bg-chartNum.svg') no-repeat centercenter;background-size: 100% 100%;// background: #ccc;list-style: none;margin-right: 1px;& > span {position: relative;display: inline-block;margin-right: 10px;width: 100%;height: 100%;writing-mode: vertical-rl;text-orientation: upright;overflow: hidden;display: flex;align-items: center;justify-content: center;& > i {font-style: normal;position: absolute;top: 8px;left: 50%;transform: translate(-50%, 0);transition: transform 1s ease-in-out;letter-spacing: 10px;}}
}
.number-item:last-child {margin-right: 0;
}
</style>

不加逗号:
在这里插入图片描述
加入逗号
在这里插入图片描述
至于样式背景可以自定义


http://www.ppmy.cn/news/218902.html

相关文章

翻纸牌游戏

有一种纸牌游戏&#xff0c;很有意思&#xff0c;给你N张纸牌&#xff0c;一字排开&#xff0c;纸牌有正反两面&#xff0c;开始的纸牌可能是一种乱的状态&#xff08;有些朝正&#xff0c;有些朝反&#xff09;&#xff0c;现在你需要整理这些纸牌。但是麻烦的是&#xff0c;每…

翻牌游戏概率模拟

假如有9张扣着的牌&#xff0c;其中7张普通牌各自翻出猫的概率相同&#xff0c;比如5%能翻出来( 95%翻出来不是猫)&#xff0c;一 张简单牌&#xff0c;翻出来猫的概率是20%&#xff0c;一张困难牌&#xff0c;翻出来猫的概率是1%。我现在有三轮翻牌机会&#xff0c;每轮都可以…

Js 简单实现翻牌小游戏

1.简介 非常简单的一个网络消消乐翻牌小游戏的实现&#xff0c;代码量较少&#xff0c;不过遇到的bug和自行开发的步骤十分有纪念意义。 2.核心代码块 生成随机数列&#xff0c;确定图片随机分布 function getImgIndex(is){var index parseInt(Math.random()*8)1;if(is[in…

翻牌动画

效果如下(可兼容移动端)&#xff1a; css部分&#xff1a; <style type"text/css"> *, *:before, *:after { box-sizing: border-box; } html { font-size: 18px; line-height: 1.5; font-weight: 300; color: #333; font-family: "Nunito …

js 翻牌小游戏

js 翻牌小游戏 效果图 链接 PC端翻牌小游戏 需求分析 生成两组顺序随机的1-8数据卡片需要有翻转效果两次翻转数据不相等&#xff0c;回复原状两次翻转数据相等&#xff0c;卡片相等&#xff0c;不能再被点击当所有卡片不能被点击游戏结束限制最大点击次数50次 HTML结构 &…

JAVA记忆翻牌游戏制作

游戏功能需求说明代码编写 1 框架搭建2 主要技术难点 21 图片面板对应的图片索引获取22 图片面板 3 完整代码 游戏截图 1启动后界面2开始游戏界面3游戏结束界面 1 游戏功能需求说明 该游戏主要模拟常见的翻牌游戏&#xff0c;即找到所有两两相同的牌认为游戏成功&#xff0c;主…

js实现翻牌游戏

在我的项目中需要在里面添加一个翻牌游戏&#xff0c;就研究了一下&#xff0c;在这里只实现了基本的效果。不多说&#xff0c;和大家分享一下。 说到翻牌游戏&#xff0c;大致分为以下几个步骤&#xff1a; 绘制正反面卡牌-------------->洗牌----------------------->…

Qt 在 VS2017 上的安装配置

Qt5.0 以上的版本可以较好地满足一些软件项目开发的要求&#xff0c;并且移植性强。Qt 中包含 很多库函数用来支持 UI 界面的设计开发。所以可选择 Qt 与 VS2017 相结合的 开发方式。由于 Qt 是安装在 VS2017 上的插件&#xff0c;所以需要下载相关的 vsaddin-msvc2017 插件。 …