大数据可视化(基于echarts的一些小组件)

数据滚动效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb94b075f2514ddfb585924e6ff525c1.pn

根据父组件传参进行数据的滚动,话不多说,直接上代码

 <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: {
sumStock: {type: String
}},data() {
return {orderNum: ["0", "0", "0", "0", "0"] // 默认订单总数
};},mounted() {
this.$nextTick(() => {console.log(this.sumStock, "----");this.toOrderNum(Number(this.sumStock)); // 这里输入数字即可调用this.setNumberTransform();// this.increaseNumber();
});},watch: {
sumStock(newValue, oldValue) {this.toOrderNum(Number(this.sumStock)); // 这里输入数字即可调用this.setNumberTransform();
}},methods: {
// 定时增长数字
increaseNumber() {let self = this;console.log(self.getRandomNumber(1, 100));this.timer = setInterval(() => {console.log(self.newNumber);this.toOrderNum(self.getRandomNumber(1, 10000));self.setNumberTransform();// this.toOrderNum(2222);}, 3000);
},
getRandomNumber(min, max) {return Math.floor(Math.random() * (max - min + 1) + min);
},
// 设置文字滚动
setNumberTransform() {const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量const numberArr = this.orderNum.filter(item => !isNaN(item));// 结合CSS 对数字字符进行滚动,显示订单数量for (let index = 0; index < numberItems.length; index++) {const elem = numberItems[index];elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;}
},
// 处理总订单数字
toOrderNum(num) {num = num.toString();// 把订单数变成字符串if (num.length < 5) {num = "0" + num; // 如未满八位数,添加"0"补位this.toOrderNum(num); // 递归添加"0"补位} else if (num.length === 5) {// 订单数中加入逗号// num = num.slice(0, 2) + "," + num.slice(2, 5) + "," + num.slice(5, 8);this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组} else {// 订单总量数字超过八位显示异常this.$message.warning("订单总量数字过大,显示异常,请联系客服");}
}}
};
</script>
<style scoped lang="scss">
/*订单总量滚动数字设置*/
.box-item {position: relative;height: 100px;
font-size: 40px;
line-height: 41px;
text-align: center;
list-style: none;
color: #2d7cff;
writing-mode: vertical-lr;
text-orientation: upright;
/*文字禁止编辑*/
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;/* overflow: hidden; */
}
/* 默认逗号设置 */
.mark-item {
width: 10px;
height: 100px;
margin-right: 5px;
line-height: 10px;
font-size: 48px;
position: relative;
& > span {
position: absolute;
width: 100%;
bottom: 0;
writing-mode: vertical-rl;
text-orientation: upright;
}
}
/*滚动数字设置*/
.number-item {
width: 41px;
height: 60%;
// background: #ccc;
list-style: none;
margin-right: 5px;
background: linear-gradient(
180deg,
#00f2fe 0%,
rgba(1, 193, 211, 0.77) 8%,
rgba(2, 144, 168, 0.54) 16%,
rgba(3, 103, 132, 0.35) 24%,
rgba(4, 72, 105, 0.2) 32%,
rgba(4, 49, 85, 0.09) 39%,
rgba(4, 35, 73, 0.02) 45%,
rgba(5, 31, 69, 0) 50%,
rgba(4, 37, 74, 0.03) 55%,
rgba(4, 54, 89, 0.11) 62%,
rgba(3, 82, 113, 0.24) 70%,
rgba(2, 121, 148, 0.43) 80%,
rgba(1, 171, 191, 0.66) 90%,
rgba(0, 227, 240, 0.93) 100%
);
opacity: 1;border-radius: 4px;
// border: 1px solid rgba(221, 221, 221, 1);
& > span {
position: relative;
display: inline-block;
margin-right: 10px;
width: 100%;
height: 100%;
writing-mode: vertical-rl;
text-orientation: upright;
overflow: hidden;
& > i {
font-style: normal;
position: absolute;
top: 11px;
left: 50%;
transform: translate(-50%, 0);
transition: transform 1s ease-in-out;
letter-spacing: 10px;
}
}
}
.number-item:last-child {
margin-right: 0;
}
</style>

根据应用,放在自己该放的地址

父组件如何调用如下:

components: {
number: () => import("对应组件路径"), // 组件懒加载},


对应传参数量 用sumStock 即可传参 ,假如小伙伴需要更改次变量可在子组件修改对应变量

假如对你有用希望点击关注,你的关注也是对博主的一个激励

vue大数据可视化【数字滚动效果】相关推荐

  1. Vue大数据可视化(大屏展示)方案升级,发布全新Vue3版本

    千呼万唤始出来,终于将原先的 Vue2 升级到了 Vue3,并且使用了 Ts,部分界面使用了 Tsx 的写法,欢迎大家来点个星星~ 项目地址:Vue3 可视化大屏展示,点颗星星吧~ 界面展示(这个是动 ...

  2. 基于vue大数据可视化(大屏展示)案例

    项目地址: vue-big-screen 点击这里 一.项目描述 1,一个基于 vue.datav.Echart 框架的 " 数据大屏项目 ",通过 vue 组件 实现数据动态刷新 ...

  3. (下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    回顾 作者用心写作,请动动你可爱的小手点亮大拇指.你的鼓励是作者继续创作的动力- 前端的学习,不能仅仅依靠知识点的学习,实战项目的操作可以帮助我们整理知识点以及提高编程能力,更有助于学习和实践,最重要 ...

  4. vue数字滚动效果组件

    数字滚动变化效果组件 效果 预览 体验地址 用途 大屏展示,数字滚动效果 实现 使用js控制元素移动. 关键代码如下: //修改 chang(oldVal,newVal,id){if(oldVal & ...

  5. html数字自动滚动代码怎么写,你可能需要这样的大屏数字滚动效果

    大屏数字滚动效果来源于最近工作中一张大屏的UI图,该UI图上有一个模块需要有数字往上翻动的效果,以下是最终实现的效果: 思路 在实现此效果之前,我们先来捋一下思路,用思维导图来设计一下我们的实现步骤, ...

  6. VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课

    VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课:现在不管什么GIS平台首先要解决的就是数据来源问题,因为没有数据的GIS就是一个空壳,下面我就目前一些主流的数据获取 方式了解做如下 ...

  7. 数字冰雹创始人邓潇专访:2017大数据可视化的关键技术及行业应用

    大数据可视化的内涵与意义 大数据可视化就是利用视觉的方式将那些巨大的.复杂的.枯燥的.潜逻辑的数据展现出来,无论通过地理空间.时间序列,还是逻辑关系等不同维度,最终使读者在短时间内理解数据背后的规律与 ...

  8. echarts+vue 实现大数据可视化(全屏)

    大数据可视化(全屏) 实现效果 (在浏览器上按f11全屏预览) 预览地址: https://2468901709.github.io/echarts–bigdata/ 完整vue项目地址: https ...

  9. 电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课

    电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格. public bool Atmosphe ...

最新文章

  1. 业务工作流平台设计(九)
  2. Python程序设计题解【蓝桥杯官网题库】 DAY4【补】-基础练习
  3. TCP协议连接的11种状态浅谈
  4. 《演讲之禅》助你成长为一名合格程序员
  5. HTML5 基础知识(三)
  6. Python中的三引号的用法
  7. C语言const使用
  8. 【❗JS奇技淫巧❗】JavaScript:截取DataURL中的base64字符串
  9. hihoCoder #1457 : 后缀自动机四·重复旋律7
  10. 排序算法-01冒泡排序(Python实现)
  11. LeetCode——动态规划:斐波那契数列
  12. 【CodeForces - 618A】Slime Combining(二进制,思维)
  13. 不用数学讲清马尔可夫链蒙特卡洛方法?
  14. SQL查询语句 group by后, 字符串合并
  15. HTTP 如何传输大文件
  16. iOS开发之WKWebview(淘宝链接不自动打开淘宝和天猫的app)
  17. linux环境下安装curl,Linux环境下curl安装和移植
  18. 关于新手入坑vue,页面跳转样式错位刷新又好了的情况
  19. POJO类toString()方法
  20. php微信公众号消息推送

热门文章

  1. 微信jssdk已无力吐槽
  2. 【20220504】软件开发模式
  3. 楼教主的ACM心路历程
  4. Android系统介绍与框架
  5. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统
  6. java求sobel算子代码_sobel算子原理及opencv源码实现
  7. 【谷粒学院】001-项目概述、Mybatis Plus入门
  8. 百度云的产品及使用场景分析
  9. Nginx 配置实现请求转发功能
  10. sql joins 的7种方式