【Echarts 实战录】常见问题 (一)

序章

Echarts 实战录, 记录了个人在使用 Echarts 期间遇到的各种疑难杂症;

同时为了控制文章篇幅, 所以将其分为多篇进行发布, 后续文章还在陆续更新中, 敬请期待!

最后如果你在使用 Echarts 期间有遇到啥奇怪需求, 欢迎在评论区进行留言、讨论……

一、Tooltip 展示位置自适应

需求内容: Tooltip 位置, 相对于屏幕来说, 鼠标 底部如果能够放下就放在底部、鼠标 右侧如果放得下就放在右侧;

其实 echarts tooltip 展示位置默认处理方式也类似、只是它是相对于 图表容器 来进行计算的, 如下图所示: 红色背景区域是 图表容器 当鼠标 hover 下移, Tooltip 会跑到鼠标上面, 因为相对于 图表容器 来说, 鼠标下方已经放不下 Tooltip 了, 但实际上对于整个屏幕来说, 鼠标下方空间还很充足

klx.pro.S2FwdHVyZSAyMDIzLTAyLTE4IGF0IDExLjI0LjQ2LmdpZjE2NzY2OTA3ODIzMzg=.gif

解决思路: 通过修改 tooltip.position 配置, 该配置允许设置一个函数, 从函数参数中可以获取到 Tooltip 相关信息, 通过计算、返回正确的位置坐标, 完整代码如下:

const TOOLTIP_OFFSET = 8// 提示框距离鼠标的距离
const container = document.getElementById('chart-container') // echarts 容器

// Tooltip 的位置: 底部放得下就放底部、右侧放得下就放右侧
const getTooltipPosition = (point, params, dom, rect, size) => {// 图表距离容器「左侧」「顶部」的距离const [offsetLeft, offsetTop] = point// 页面视口「宽」「高」const { clientWidth, clientHeight } = document.body// 图表组件容器距离视图「顶部」「左侧」的距离const { top: containerTop, left: containerLeft } = container.getBoundingClientRect()// 当前鼠标位置距离浏览器视口「顶部」「底部」「左侧」「右侧」的距离const top = containerTop + offsetTopconst left = containerLeft + offsetLeftconst bottom = clientHeight - topconst right = clientWidth - left// 提示框的「宽」「高」const [tooltipWidth, tooltipHeight] = size.contentSize// 如果底部可以放下提示框, 则放底部、否则放在顶部const tooltipY =tooltipHeight + TOOLTIP_OFFSET < bottom? offsetTop + TOOLTIP_OFFSET: offsetTop - tooltipHeight - TOOLTIP_OFFSET// 如果底部可以放下提示框, 就放右侧、否则放在左侧const tooltipX =tooltipWidth + TOOLTIP_OFFSET < right? offsetLeft + TOOLTIP_OFFSET: offsetLeft - tooltipWidth - TOOLTIP_OFFSETreturn [tooltipX, tooltipY]
}

option = {tooltip: {trigger: 'axis',position: getTooltipPosition,},...
} 

最终效果有:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常见的关于 Echarts 雷达图的问题有以下几个: 1. 如何在 Echarts 中绘制雷达图? 在 Echarts 中绘制雷达图需要使用 `radar` 组件。首先需要引入 Echarts 的 JS 文件,然后创建一个容器元素,并通过 JavaScript 代码初始化 Echarts 实例并配置雷达图的相关参数,最后将实例绑定到容器元素上即可。 2. 如何设置雷达图的数据和指标名称? 在雷达图的配置项中,通过 `radar.indicator` 属性可以设置雷达图的指标名称。同时,通过 `series.data` 属性可以设置雷达图的数据。其中,每个数据项都需要根据指标名称进行对应赋值。 3. 如何调整雷达图的样式和颜色? 可以通过配置项中的 `radar.shape` 属性来调整雷达图的形状,如设置为圆形或多边形。另外,通过 `radar.splitNumber` 属性可以调整雷达图的分割线数量。关于颜色,可以通过配置项中的 `series.itemStyle` 属性来设置雷达图的样式,包括颜色、边框等。 4. 如何在雷达图上添加标记和文字? 可以通过 `series.label` 属性来设置雷达图上数据项的标记和文字。通过设置 `label.show` 为 true,并调整其他相关参数,如位置、字体大小等,可以在雷达图上显示标记和文字。 5. 如何实现雷达图的动画效果? Echarts 提供了丰富的动画效果配置,通过配置项中的 `animation` 属性可以设置雷达图的动画效果。可以调整动画的类型、持续时间和延迟等参数,实现雷达图的动态展示效果。 这些是关于 Echarts 雷达图的一些常见问题,希望对你有所帮助!如有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值