带排序动画的横向条形图
之前在新闻里面看到过一个条形图,展示的是每年各个国家的GDP比较,里面出现中国的GDP每年都在赶超其他国家,条形图赶超其他国家有个排序的动画,感觉很生动也很好看,就试着用VUE实现了一遍。做了才知道其实逻辑比较简单,现在把代码贴出来,有需要的同学可以拿去用用(代码比较粗糙,可以自己再去细化一下),主要是用css3里面的过渡效果实现的。
成品效果如下图所示:
组件代码如下(d-echart.vue):
<template> <div class="chart"> <ul> <li v-for="(item) of list" :key="item.name" :style="{'transform': 'translateY(' + item.index * 36 + 'px)'}" > <div class="name">{{ item.name }}</div> <div class="bar"> <i :style="{'width': item.gdp + '%','backgroundColor': item.bg}"><em>{{ item.gdp }}</em></i> </div> </li> </ul> </div></template> <script>export default { props: { data: { type: Array, default: () => ([]) } }, data () { return { viewData: this.data } }, computed: { list () { const list = JSON.parse(JSON.stringify(this.viewData)) list.sort((x, y) => { return y.gdp - x.gdp }) list.forEach((item, i) => { this.viewData.forEach((it, idx) => { if (item.name === it.name) { this.$set(this.viewData, idx, {...this.viewData[idx], 'index': i}) } }) }) return this.viewData } }, watch: { 'data': function (val) { this.viewData = val } }}</script> <style scoped lang="scss"> h3 { background-color: #f1f1f1; padding-bottom: 16px; } .chart { ul { position: relative; li { display: block; width: 530px; margin-top: 10px; overflow: hidden; padding-right: 30px; position: absolute; transition: all 0.5s linear; top: 0; left: 0; div { float: left; &.name { width: 90px; margin-right: 10px; text-align: right; } &.bar { position: relative; width: 400px; i { display: inline-block; height: 14px; line-height: 14px; background-color: #1a7a63; position: relative; transition: all 1s linear; em { position: absolute; right: -30px; top: 0; height: 14px; line-height: 14px; display: inline-block; } } } } } } }</style> 使用方法如下:
<dEchart :data="data"></dEchart> 数据格式形如(即数据data的格式):
[ { name: '中国', gdp: 7, bg: '#1F9A99' }, { name: '美国', gdp: 96, bg: '#9A9839' }, { name: '日本', gdp: 85, bg: '#9a270f' }, { name: '英国', gdp: 78, bg: '#50409a' }, { name: '俄罗斯', gdp: 65, bg: '#2b9a0a' }, { name: '缅甸', gdp: 15, bg: '#e66491' }, { name: '新加坡', gdp: 39, bg: '#8d869a' }, { name: '印度', gdp: 10, bg: '#070b9a' }]
转载于:https://www.cnblogs.com/qddyh/p/10972038.html
带排序动画的横向条形图相关推荐
- [数据结构与算法]超级详细解读基本排序算法(不看后悔,带排序演示动画)
排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序.买火车票会按照出发时间或者时长排序.买东西会按照销量或者好评度排序.查找文件会按照修改时间排序等等.在计算机程序设 ...
- jQuery 设计和自定义一个带展开动画效果的导航栏
设计和自定义一个带展开动画效果的导航栏,尝试写了一个demo,加上设计和调试差不多写了一天吧. 这里就来讲讲如何从设计->写布局->写样式->写JS代码 完成一个完全自己设计的导航栏 ...
- Android带平移动画的栏目选择功能
本文中代码参考开源项目 QuickNews中的频道选择模块,并非本人原创,只是将部分功能抽出单独分析. 主要是供个人学习,分析其实现过程,也是我自己(小白一枚)的学习笔记供大家一起学习. 移步下载源码 ...
- R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered Stacked Horizontal Barplot)
R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered Stacked Horizontal Barplot) 目录 R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered S ...
- html 表格过滤功能,简单的带排序和过滤功能的jQuery表格插件
smart-table是一款简单实用的带排序和过滤功能的jQuery表格插件.该jQuery表格插件通过简单的设置就可以生成表格排序.表格字段过滤功能,甚至可以实现表格分页显示,使用非常方便. 使用方 ...
- 让 ScrollViewer 的滚动带上动画
让 ScrollViewer 的滚动带上动画 原文:让 ScrollViewer 的滚动带上动画 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载. ...
- Silverlight带关闭动画的内容控件,可移动的内容控件(一)
本例给大家介绍两个自定义控件,一个有显示和关闭两种状态,在状态切换时有动画效果.另外一个是可以拖动的内容控件,可以制作能拖动的面板. A.带关闭动画的内容控件. .xaml View Code < ...
- Java JDK 自带排序(Arrays.sort(数组名))与自行编写的降序
JDK 自带排序(Arrays.sort(数组名))与自行编写的降序 jdk 自带的排序 Arrays.sort(数组名) 只能进行升序排列 可以与自己写的降序 配合使用 import java.ut ...
- python方差分析误差棒_一文讲透,带你学会用Python绘制带误差棒的柱状图和条形图...
Python数据可视化,作为数据常用的必备技能,是目前大数据和数据分析的一个热门,而matplotlib库作为Python中最为常用和经典的二维绘图库,受到了很多人的青睐,最近已经和大家共同探讨了多种 ...
最新文章
- 线性回归api初步使用
- python面试常见问题-常见Python面试题
- c# GDI+简单绘图(二)
- LAMP 系统性能调优:第2 部分: 优化Apache 和PHP-学习笔记
- Java的Covariance设计原理和SAP ABAP的模拟实现
- 初来乍到?请多关照==23333
- Taro+react开发(26)taro基本骨架
- Angular启动过程介绍
- linux_安装jdk和mysql简单步骤记
- Opencv---remap函数的实现
- 引人注目的意思是什么,怎么用引人注目造句,引人注目的近义词有哪些?
- R Talk | 旷视南京研究院魏秀参:细粒度图像分析综述
- ad中按钮开关的符号_电工最常用电气元件实物及对应符号
- 电脑有弹窗广告怎么办?真实个人经验分享
- darts.h注释 - 滴水穿石 - 歪酷博客 Ycool Blog
- 为什么很少有单片机机构?培训班一般多少费用?
- 手淘双十一性能优化项目揭秘
- 6种以太坊(ETH)钱包的基本介绍
- Log4j详细使用教程
- 盘点互联网大佬背后的女人,最后一个你肯定认识
热门文章
- zcmu-1931(dfs方格切割)
- Google Archive Patch 源码解析
- Android NDK 内存泄露检测
- 重塑世界的区块链技术你必须要懂得
- 反恐精英出现服务器消息,cs你已被禁用次服务器 | 手游网游页游攻略大全
- excel分段排序_EXCEL基础篇第六章(日期和时间的使用方法)
- java调用本地shell_java通过ProcessBuilder执行本地shell命令 获取ip配置信息
- Linux 中的驱动开发的初学者体会
- 过拟合、欠拟合的原因和解决办法
- 魔兽世界美服部落人数最多服务器,魔兽世界全球服务器最新人口普查,其实并没有你想象的那么少...