echarts图从隐藏到显示以后大小有问题的解决方法

news2024/11/23 18:01:08

大家好,我是南宫。

今天分享一个刚刚解决的问题。

稍微介绍一下问题的背景:

我有一个绘制柱状图的需求,之前已经画好了,没想到今天对接数据的时候发现,如果没有数据,后端是直接返回一个空数组的。(柱状图你懂的,横坐标要表示要显示哪些数据,纵坐标表示要显示的数据分别是多少

显然这样没法画图——我做的这个是年龄分组的柱状图,我不知道年龄具体要怎么分组,如果我写死一种分组,后续需求变了,我也跟着修改就很不灵活;跟后端沟通,没数据能不能默认返回原来的格式,按value都是0处理,被拒绝了,说是做不到

问题的解决:

我只能想到一种解决方法,那就是确认返回空数组以后,不显示柱状图,直接显示“暂无数据”的提示,在得到产品的同意以后,我去搬运了项目里面其他页面的一个“暂无提示”过来。

效果是这样的。

把这个元素和原本的折线图容器作为兄弟元素,判断是否有数据,然后用v-show来控制显示隐藏(因为觉得这里会频繁显示隐藏,用v-if不太合适,初始化起来有时间差)。

结果没想到,我修改搜索条件,有数据以后,变成这样了


显然,有数据的时候可以绘图,但是canvas变得这么小了,绘图的效果全挤在这里。具体原因我不想深究,但是我认为跟这个绘图容器的空间从无到有的变化有关系,这个变化需要时间,如果还没等它变得足够大,就开始绘图的话,就会这样

也就是说,有数据的时候要显示这个容器,没有数据的时候要隐藏容器,显示暂无数据的提示,这发显示隐藏的过程中“不能占据额外的空间、不能改变容器元素的大小”。

我是这么思考的:

因为不能改变容器元素的大小,所以不能使用v-if和v-show来控制显示隐藏,不影响元素大小的隐藏方法我知道两个:① visible:hidden; ② opacity: 0; 我对透明度更熟悉,所以我通过修改透明度来实现显示隐藏。(相当于元素还在原地,只是看不见了)

那么既然容器一直在原地,大小不变,那么暂无数据的提示要怎么办呢?按照标准流的话,显示的时候它实际上会显示在下方,撑大父容器,这样不仅位置不对,还会占据额外空间。

所以我选择绝对定位的方式,绝对定位以后不会占据额外空间,但是保持原来的大小不变,补充父元素相对定位,定位在合适的地方就可以了。

接下来就简单了:判断请求后是否有数据,有就让绘图容器的opacity为1,否则为0;暂无数据的提示则用v-show来控制显示隐藏就好。

问题虽然小,但是过程中的思考很重要,希望能给有类似需求的你带来一些启发哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面向对象高级

本期对应知识库:(持续更新中!) 面向对象高级 (yuque.com) ​​​​​​​尚硅谷_宋红康_对象内存解析.pptx static 适用于公用变量 开发中,变量 经常把一些常量设置为静态static 例如 PI 方法 经常把工具类中的方…

RapidSSL证书

RapidSSL是一家经验丰富的证书颁发机构,主要专注于提供标准和通配符SSL证书的域验证SSL证书。在2017年被DigicertCA收购后,RapidSSL改进了技术并开始使用现代基础设施。专注于为小型企业和网站提供基本安全解决方案的SSL加密。RapidSSL它具有强大的浏览器…

股票四倍杠杆什么意思?

股票四倍杠杆是指投资者通过借款或使用金融衍生品,以增加其投资股票的能力,达到放大投资回报的目的。具体来说,投资者可以通过向券商或银行等金融机构借入资金,或者使用融资融券等金融衍生品,以增加其购买股票的资本&a…

SAM + 用于文本到图像修复的稳定扩散

推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具: DreamTexture.js自动纹理化开发包 - NSDT 什么是SAM? 今年早些时候,Meta AI 发布了新的开源项目:Segment Anything Model (SAM)&#xff…

智慧工地建筑施工项目管理平台源码,实现人员劳务实名制管理、区域安防监控、智能AI识别、用电/水监控、噪音扬尘监测、现场物料管理等功能

智慧工地管理系统源码,智慧工地云平台源码,PC端APP端源码 智慧工地管理平台实现对人员劳务实名制管理、施工进度、安全管理、设备管理、区域安防监控系统、智能AI识别系统、用电/水监控系统、噪音扬尘监测、现场物料管理系统等方面的实时监控和管理&…

使用U盘安装ubuntu22操作教程

U盘启动 将烧录好的U盘,插上待安装系统的电脑 服务器在开机之后长按【ESC键】进入BIOS选项中,选择对应的U盘启动 如下图,在界面中“USB”选项就是我的U盘,第一启动项选择U盘启动,其他启动项不动,选择后按F…

【计算思维题】少儿编程 蓝桥杯省赛考试计算思维真题 数学逻辑思维真题详细解析第11套

少儿编程 蓝桥杯青少组计算思维真题及解析 第十四届蓝桥杯省赛真题 1、晶晶在注册一个学习网站时,需要设置密码。网站提示: 密码必须由 8~16个字符组成,可以包合数字、大写字母、小写字母、特殊符号这 4种字符类型。 包含4种不同类型字符的密码是强密码; 包含2种或3种不…

软件开发项目文档系列之十五如何撰写项目结项报告

这是一个项目总结文档的说明文件,它提供了项目的概述、建设情况、技术情况、测试情况、培训情况、试运行情况、主要成效等详细信息。 1 项目概述 项目名称:明确指定了项目的名称,这有助于确保文件的清晰性和易读性。 项目相关单位&#xff…

「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(二)

本教程将指导开发者如何生成一个可运行的Spring MVC客户应用程序,该应用程序实现域模型的CRUD应用程序模式。在本教程中,您将学习如何: 从数据库表的Scaffold到现有项目部署搭建的应用程序 使用Spring MVC搭建需要MyEclipse Spring或Bling授…

三相电机的某些实测特性曲线

三相电机参数: 0.75KW,额定电流是2A,功率因数0.71,效率78.9%。制式S1. 1.负载不变时的线电压与线电流的关系 1.1相关数据与python代码: 这里记录了一系列的实验: 第一组实验:近乎空载&#xf…

HTTParty库数据抓取代码示例

使用HTTParty库的网络爬虫程序, ruby require httparty # 设置服务器 proxy_host proxy_port # 使用HTTParty库发送HTTP请求获取网页内容 response HTTParty.get(/, :proxy > { :host > proxy_host, :port > proxy_port }) # 打印获取的网页内容 …

SpringBoot 配置进阶

一、ConfigurationProperties 1、 在类定义上 ConfigurationProperties注解,此注解是用来为bean绑定属性。使用步骤如下: 在配置文件 application.yml 中,添加配置信息 servers:ip-address: 127.0.0.1port: 8123创建配置类,并在…

ubuntu下Anaconda环境安装GPU的pytorch(docker镜像)

实验室需要给每个人分配docker的container环境,为了节省系统的空间,打算把anaconda和深度学习的开发环境配置好拉取镜像以省时间。 基础环境配置 apt更新了清华源 安装了基础环境 gcc vim Linux文本编辑库 openssh-server ssh远程连接库 net-tools 包含…

iEnglish马铁鹰:智能教育塑造未来学习新范式

随着云计算、大数据、物联网、人工智能和区块链等新一代智能技术在教育中的广泛应用,教育正日益迈向智能时代。智能化和智慧化将深刻改变未来教育形式和学习方式,为教育带来更多可能性和机遇。根据教育部统计数据,截至2022年底,中…

Spring Cloud 微服务入门篇

文章目录 什么是微服务架构 Microservice微服务的发展历史微服务的定义微小的服务微服务 微服务的发展历史1. 微服务架构的发展历史2. 微服务架构的先驱 微服务架构 Microservice 的优缺点1. 微服务 e Microservice 优点2. 微服务 Microservice 缺点微服务不是银弹:…

VS Code画思维导图:Graphviz Markdown Preview

文章目录 简介常见属性聚集子图节点结构 简介 Graphviz是一种思维导图格式,其文件后缀是.dot。VS code中既有专门针对.dot的插件,也有嵌入Markdown的Graphviz插件,从我个人的使用频次来说,后者更加常用,有了Graphviz …

【大模型-第一篇】在阿里云上部署ChatGLM3

前言 好久没写博客了,最近大模型盛行,尤其是ChatGLM3上线,所以想部署试验一下。 本篇只是第一篇,仅仅只是部署而已,没有FINETUNE、没有Langchain更没有外挂知识库,所以从申请资源——>开通虚机——>…

Postgres主键自增时重复键违反唯一约束

错误: 重复键违反唯一约束\"bue_new_copy1_pkey\"\n 详细:键值\"(id)(31)\"已经存在\n 新增的数据的id跟表里面的数据id重复了,这种一般是手动导入数据或者复制表等情况造成的,直接修改表的序列为当前最大的id&#xf…

MCSM面板搭建教程和我的世界Paper服务器开服教程

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Paper1.20.2服务器教程。 本教程演示安装的MC服是Paper 1.20.2版,其他版本也可以参考本教程,差别不大。 本教程使用Docker来运行mc服,可以方便切换不同Java版本,方便安装多个…

【GEE】9、在GEE中生成采样数据【随机采样】

1简介 在本模块中,我们将讨论以下概念: 如何使用高分辨率图像生成存在和不存在数据集。如何在要素类图层中生成随机分布的点以用作字段采样位置。如何根据参数过滤您的点以磨练您的采样位置。 华盛顿州白杨林旁的落基山麋鹿。 图片来源:美国…