diff --git a/src/component/visualMap/ContinuousView.ts b/src/component/visualMap/ContinuousView.ts index 2b2248ef28..d4aa842a8a 100644 --- a/src/component/visualMap/ContinuousView.ts +++ b/src/component/visualMap/ContinuousView.ts @@ -108,8 +108,12 @@ class ContinuousView extends VisualMapView { private _firstShowIndicator: boolean; - private _api: ExtensionAPI; + init(ecModel: GlobalModel, api: ExtensionAPI) { + super.init(ecModel, api); + this._hoverLinkFromSeriesMouseOver = zrUtil.bind(this._hoverLinkFromSeriesMouseOver, this); + this._hideIndicator = zrUtil.bind(this._hideIndicator, this); + } doRender( visualMapModel: ContinuousModel, @@ -117,8 +121,6 @@ class ContinuousView extends VisualMapView { api: ExtensionAPI, payload: {type: string, from: string} ) { - this._api = api; - if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) { this._buildView(); } @@ -711,7 +713,7 @@ class ContinuousView extends VisualMapView { for (let i = 0; i < handleLabels.length; i++) { // Fade out handle labels. // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it. - this._api.enterBlur(handleLabels[i]); + this.api.enterBlur(handleLabels[i]); } } } @@ -856,7 +858,7 @@ class ContinuousView extends VisualMapView { for (let i = 0; i < handleLabels.length; i++) { // Fade out handle labels. // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it. - this._api.leaveBlur(handleLabels[i]); + this.api.leaveBlur(handleLabels[i]); } } } @@ -874,6 +876,7 @@ class ContinuousView extends VisualMapView { this._hideIndicator(); const zr = this.api.getZr(); + zr.off('mouseover', this._hoverLinkFromSeriesMouseOver); zr.off('mouseout', this._hideIndicator); } @@ -892,7 +895,7 @@ class ContinuousView extends VisualMapView { : graphic.transformDirection(vertex, transform, inverse); } - // TODO: TYPE more specified payload types. + // TODO: TYPE more specified payload types. private _dispatchHighDown(type: 'highlight' | 'downplay', batch: Payload['batch']) { batch && batch.length && this.api.dispatchAction({ type: type, @@ -908,14 +911,6 @@ class ContinuousView extends VisualMapView { this._clearHoverLinkToSeries(); } - /** - * @override - */ - remove() { - this._clearHoverLinkFromSeries(); - this._clearHoverLinkToSeries(); - } - } function createPolygon( diff --git a/test/runTest/actions/__meta__.json b/test/runTest/actions/__meta__.json index 0d67363c0e..76383def7a 100644 --- a/test/runTest/actions/__meta__.json +++ b/test/runTest/actions/__meta__.json @@ -216,5 +216,6 @@ "universalTransition": 6, "universalTransition2": 3, "universalTransition3": 2, - "visualMap-categories": 1 + "visualMap-categories": 1, + "visualMap-multi-continuous": 1 } \ No newline at end of file diff --git a/test/runTest/actions/visualMap-multi-continuous.json b/test/runTest/actions/visualMap-multi-continuous.json new file mode 100644 index 0000000000..fa0bba0713 --- /dev/null +++ b/test/runTest/actions/visualMap-multi-continuous.json @@ -0,0 +1 @@ +[{"name":"Action 1","ops":[{"type":"mousemove","time":992,"x":584,"y":400},{"type":"mousemove","time":1194,"x":580,"y":373},{"type":"mousemove","time":1399,"x":566,"y":353},{"type":"mousemove","time":1604,"x":559,"y":345},{"type":"mousemove","time":1806,"x":541,"y":337},{"type":"mousemove","time":2009,"x":518,"y":342},{"type":"mousemove","time":2214,"x":482,"y":357},{"type":"mousemove","time":2417,"x":421,"y":364},{"type":"mousemove","time":2620,"x":376,"y":346},{"type":"mousemove","time":2821,"x":359,"y":324},{"type":"mousemove","time":3025,"x":365,"y":309},{"type":"mousemove","time":3226,"x":383,"y":310},{"type":"mousemove","time":3426,"x":408,"y":358},{"type":"mousemove","time":3632,"x":414,"y":380},{"type":"mousemove","time":3835,"x":488,"y":362},{"type":"mousemove","time":4037,"x":553,"y":326},{"type":"mousemove","time":4241,"x":593,"y":286},{"type":"mousemove","time":4447,"x":593,"y":262},{"type":"mousemove","time":4736,"x":593,"y":262},{"type":"mousemove","time":4939,"x":746,"y":234},{"type":"mousemove","time":5144,"x":758,"y":225},{"type":"mousemove","time":5347,"x":746,"y":218},{"type":"mousemove","time":5556,"x":743,"y":216},{"type":"mousemove","time":5978,"x":743,"y":216},{"type":"mousemove","time":6184,"x":758,"y":253},{"type":"mousemove","time":6385,"x":762,"y":348},{"type":"mousemove","time":6587,"x":758,"y":374},{"type":"mousemove","time":6791,"x":757,"y":377},{"type":"mousemove","time":6995,"x":757,"y":397},{"type":"mousemove","time":7197,"x":758,"y":416},{"type":"mousemove","time":7412,"x":758,"y":418},{"type":"mousemove","time":7628,"x":758,"y":418},{"type":"screenshot","time":8017},{"type":"mousemove","time":8137,"x":758,"y":418},{"type":"mousemove","time":8337,"x":758,"y":408},{"type":"mousemove","time":8542,"x":506,"y":344},{"type":"mousemove","time":8743,"x":488,"y":347},{"type":"mousemove","time":8944,"x":488,"y":349},{"type":"screenshot","time":9261},{"type":"mousemove","time":9370,"x":487,"y":349},{"type":"mousemove","time":9577,"x":409,"y":363},{"type":"mousemove","time":9783,"x":403,"y":363},{"type":"screenshot","time":9889},{"type":"mousemove","time":9995,"x":402,"y":363},{"type":"mousemove","time":10205,"x":344,"y":353},{"type":"mousemove","time":10413,"x":340,"y":352},{"type":"screenshot","time":10508},{"type":"mousemove","time":10620,"x":334,"y":351},{"type":"mousemove","time":10824,"x":317,"y":355},{"type":"mousemove","time":11027,"x":282,"y":352},{"type":"mousemove","time":11238,"x":277,"y":351},{"type":"mousemove","time":11444,"x":275,"y":351},{"type":"screenshot","time":11517},{"type":"mousemove","time":11653,"x":274,"y":351},{"type":"mousemove","time":11794,"x":273,"y":351},{"type":"mousemove","time":11994,"x":228,"y":351},{"type":"mousemove","time":12194,"x":227,"y":351},{"type":"screenshot","time":12377},{"type":"mousemove","time":12453,"x":227,"y":351},{"type":"mousemove","time":12660,"x":188,"y":348},{"type":"mousemove","time":12864,"x":183,"y":346},{"type":"mousemove","time":13117,"x":183,"y":346},{"type":"mousemove","time":13138,"x":184,"y":346},{"type":"mousemove","time":13341,"x":189,"y":351},{"type":"mousemove","time":13549,"x":190,"y":352},{"type":"screenshot","time":13666},{"type":"mousemove","time":13764,"x":189,"y":350},{"type":"mousemove","time":13967,"x":186,"y":323},{"type":"mousemove","time":14171,"x":186,"y":323},{"type":"mousemove","time":14372,"x":187,"y":324},{"type":"screenshot","time":14449},{"type":"mousemove","time":14487,"x":187,"y":324},{"type":"mousemove","time":14688,"x":204,"y":315},{"type":"mousemove","time":14888,"x":300,"y":254},{"type":"mousemove","time":15092,"x":270,"y":243},{"type":"mousemove","time":15300,"x":270,"y":246},{"type":"screenshot","time":15607},{"type":"mousemove","time":15662,"x":270,"y":246},{"type":"mousemove","time":15863,"x":273,"y":246},{"type":"mousemove","time":16067,"x":430,"y":211},{"type":"mousemove","time":16271,"x":596,"y":228},{"type":"mousemove","time":16475,"x":604,"y":233},{"type":"mousemove","time":16679,"x":605,"y":233},{"type":"mousemove","time":16879,"x":717,"y":200},{"type":"mousemove","time":17079,"x":737,"y":193},{"type":"mousemove","time":17283,"x":752,"y":196},{"type":"mousemove","time":17553,"x":752,"y":196},{"type":"screenshot","time":17783},{"type":"mousemove","time":17820,"x":752,"y":197},{"type":"mousemove","time":18020,"x":767,"y":500},{"type":"mousemove","time":18224,"x":756,"y":436},{"type":"mousemove","time":18429,"x":760,"y":412},{"type":"screenshot","time":19049}],"scrollY":0,"scrollX":0,"timestamp":1694167824332}] \ No newline at end of file diff --git a/test/visualMap-multi-continuous.html b/test/visualMap-multi-continuous.html new file mode 100644 index 0000000000..b5945dcea0 --- /dev/null +++ b/test/visualMap-multi-continuous.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + \ No newline at end of file