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

大家好,我是南宫。

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

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

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

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

问题的解决:

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

效果是这样的。

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

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


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

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

我是这么思考的:

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统编程——实现cp指令(应用)

cp指令格式 cp [原文件] [目标文件] cp 1.c 2.c 功能是将原文件1.c复制后并改名成2.c(内容相同,实现拷贝) 这里需要引入main函数的参数解读: 我们在定义函数时许多都带有参数,输入参数后便可进行定义函数内的功能执行,而main…

终止进程后,GPU显存仍被占用问题 | kill -9彻底杀死进程 | ps aux|grep python

本文部分内容参考博客,十分感谢!!! 问题描述:在Linux终端把进程终止后,发现显存没有被释放出来! ---------------------------------------------------------------------------------------F…

【java:牛客每日三十题总结-5】

java:牛客每日三十题总结 总结如下 总结如下 -Xmx:最大堆大小 -Xms:初始堆大小 -Xmn:年轻代大小 -XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值 年轻代5120m, Eden:Survivor3,Survivor区大小102…

No185.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

爬虫项目(12):正则、多线程抓取腾讯动漫,Flask展示数据

文章目录 书籍推荐正则抓取腾讯动漫数据Flask展示数据 书籍推荐 如果你对Python网络爬虫感兴趣,强烈推荐你阅读《Python网络爬虫入门到实战》。这本书详细介绍了Python网络爬虫的基础知识和高级技巧,是每位爬虫开发者的必读之作。详细介绍见&#x1f44…

使用python电脑轻量级控制手机—adb命令和手机投屏

文章目录 一、通过无线连接手机和电脑二、使用adb命令轻量级控制手机二、使用scrcpy控制手机 通过电脑控制手机有多种方式如appnium等,本文介绍的是两种轻量级的方案,使用adb命令刚和手机投屏。 一、通过无线连接手机和电脑 1、手机设置 开发者选项—us…

【文章阅读】Transfer learning for drug–target interaction prediction

Bioinformatics , 2023 Transfer learning for drug–target interaction prediction 本文主要是对迁移学习所使用的三种模式进行学习 ,本文没有什么很值得细读的,只是介绍了三种迁移学习的方式罢了 深度迁移学习是将迁移学习应用于深度神经网络。深度迁…

体验版CorelDRAW2023矢量图话题工具

在当今数字化时代,图形设计已经成为了各行各业不可或缺的一部分。无论是企业的品牌标识、广告宣传,还是个人的插画作品、名片设计,都需要一个强大而多功能的设计软件来实现。而CorelDRAW正是这样一款令人惊叹的工具,它不仅提供了丰…

腾讯云3年轻量2核2G4M和2核4G5M服务器540元三年

腾讯云轻量应用服务器特价是有新用户限制的,所以阿腾云建议大家选择3年期轻量应用服务器,一劳永逸,免去续费困扰。腾讯云轻量应用服务器3年可以选择2核2G4M和2核4G5M带宽,3年轻量2核2G4M服务器540元,2核4G5M轻量应用服…

Cocos开发

harmonyOS开发 在Cocos Creator中,场景是一个独立的文件资源,可以像打开PSD文件一样在编辑器中双击打开; 场景文件是数据驱动工作流的核心,场景中包括图像资源、动画、特效以及驱动游戏逻辑和表现的脚本; Cocos Crea…

王道数据结构课后代码题p40 9.给定一个带表头结点的单链表,写出算法 : 按递增次序输出单链表中各结点的数据元素并释放结点 (c语言代码实现)

本题代码如下(有注释) void delete_min(linklist* head) {while ((*head)->next ! NULL)//循环到只剩下头节点{lnode* pre *head;//pre为元素最小结点的前驱结点指针lnode* p (*head)->next;//p为工作指针lnode* q;//指向被删除的结点while (p-…

数据结构与算法C语言版学习笔记(3)-线性表的链式结构:链表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言:回顾顺序表的优缺点:为什么要引入链式结构的线性表? 一、什么是链表?二、链表的分类①为什么要设置头节点&…

若依框架维护问题

1.设置table高度 2.处理弹出框遮罩层 < el-dialog :title“title” custom-class“custom_drawer_class” :visible.sync“visible” size“50%” append-to-body> </ el-dialog>

jmeter+ant实现的接口自动化测试

jmeterANT接口自动化测试框架 项目说明 本框架是一套基于jmeterAntExcelPython而设计的数据驱动接口自动化测试框架&#xff0c;jmeter 作为执行器&#xff0c;Ant 作为构建工具&#xff0c;进行构建测试&#xff0c;本框架无需你使用代码编写用例&#xff0c;测试用例存储在…

【原型详解】JavaScript原型链:深入了解Prototype,超级详细!!!

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;JavaScript进阶指南 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继…

Some/IP学习笔记

目录 1.概述 2.SOME/IP 报文格式 3.数据结构序列化 1.概述 SOME/IP全称为Scalable Service Oriented MiddlewarE Over IP&#xff0c;是车载以太网技术中的核心内容&#xff0c;它为网络提供了面向服务的通信方式。一个服务可以包含0个或者多个事件&#xff08;events&#…

flutter逆向 ACTF native app

前言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道l…

常见面试题-Redis底层的SDS、ZipList、ListPack

Redis 的 SDS 了解吗&#xff1f; 答&#xff1a; Redis 创建了 SDS&#xff08;simple dynamic string&#xff09; 的抽象类型作为 String 的默认实现 SDS 的结构如下&#xff1a; struct sdshdr {// 字节数组&#xff0c;用于保存字符串char buf[];// buf[]中已使用字节…

介绍YOLO-NAS Pose:姿势估计的技术

YOLO-NAS 姿势 YOLO-NAS Pose models是对 Pose Estimation 领域的最新贡献。今年早些时候,Deci 因其突破性的目标检测基础模型 YOLO-NAS 获得了广泛认可。在 YOLO-NAS 成功的基础上,该公司现在推出了 YOLO-NAS Pose 作为其姿势估计的对应产品。该姿势模型在延迟和准确性之间…

linux入门---自旋锁和读写锁

自旋锁 首先通过一个例子来带着大家理解自旋锁&#xff0c;在生活中大家肯定都等过人比如你们一家人准备出去玩可是出发的时候妻子发现自己还没有化妆于是连忙赶回了家这个时候其他人就得在楼下等着&#xff0c;但是这个等又分为两种情况第一种是真的在楼下等其他的什么事都没…