场景: echarts 饼图轮播高亮各项
效果图:
第一步:
明确,如何获取实例的配置,如何使得echarts 图表单项高亮/取消高亮
高亮,取消高亮对应echarts的Api
第二步:
各类数据
ps:
高亮索引从0开始, 每次高亮后,currentIndex+1
, 会超出data数据项的长度,所以派发高亮/取消高亮的事件时候,需要 ``currentIndex = (currentIndex+1) % len`, len 是当前legend选中展示的数据项长度而不是全部的数据长度,后面会讲到。
第三步:
开启各项事件的监听
1.鼠标悬浮事件:instance.on('mouseover',e=>{.... })
说明:鼠标悬浮到图表首先得判断, 当前鼠标悬浮图项的dataIndex 是否正是当前轮播的 currentIndex
如果是则直接清除定时轮播,如果不是,则需要取消currentIndex
的高亮效果,并且高亮当前回调中的项dataIndex,将当前currentItem 赋值为当前回调的数据项,并且调用highEvent(currentItem) (告诉外部数据变化)
2.鼠标移出事件:instance.on('mouseout',e=>{ ....})
说明: 承接上面移入,移出就比较简单, 直接重新开始走轮播定时器即可
3.图表切换显示与否事件:instance.on('legendselectchanged',e=>{... })
重点说明:如果忘了这一步,你的轮播图表就会出现明明取消展示了一些图,但是它们却还在轮播展示中,
所以监听这个legendselectchanged
事件,就是为了,改变定时器当前可轮播项。该事件触发会返回当前图项目的展示与否信息,name
作为key, false/true
作为value。详细细节看下面完整代码与注释。
4.点击事件: instance.on('click',e=>{ clickEvent(e) })
说明: 这里的点击事件单纯作为一个扩展方法,通过外部传入clickEvent,在此执行一次,将信息传达出去共给外部自定义其他交互。 tip:
1.timer应该在hooks 进入的时候,判断是否为空,不为空应该清除轮播定时器
2.在hook生命周期,onUnmounted 中应该清除轮播定时器
详细代码
1.PieEchart.vue
2.echartsOption
3.useEchartSwipe
4.useWinResize
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!