研究背景
????最近看看echarts-gl發(fā)現(xiàn)有些效果挺好的,就是使用Echarts5和最近版Maptalks(1.0.0-rc.6)有些問題,地圖居然不能進(jìn)行縮放。
問題原因
????研究一番,發(fā)現(xiàn)Maptalks(0.38.0)版本是可以,于是一個(gè)個(gè)版本來試,發(fā)現(xiàn)在(Maptalks0.47.5)更新之后就出現(xiàn)問題了,發(fā)現(xiàn)是滾輪事件監(jiān)聽修改了,當(dāng)時(shí)為了修復(fù)火狐的滾輪事件異常(老的鼠標(biāo)事件標(biāo)準(zhǔn)已經(jīng)廢棄)。

67906e4a6aa3459eb34ed96ab8ed6e2f_tplv-k3u1fbpfcp-watermark.png

ceb0e52b8f7a4fe09d83b66e2bab9247_tplv-k3u1fbpfcp-watermark.png

9a967e28c4c9410a80554f0cd9d28155_tplv-k3u1fbpfcp-watermark.png
https://github.com/maptalks/maptalks.js/commit/f2ee04a8e87e07d1fed338bb53df9f1f7f915ee9
修復(fù)問題
????修改以下代碼發(fā)現(xiàn)恢復(fù)正常,但是在火狐上使用后又發(fā)現(xiàn)新問題,滾輪事件一觸發(fā)那就會(huì)報(bào)illegal constror。
????后來經(jīng)過和廣大-拖延癥晚期的討論發(fā)現(xiàn),只要事件中加入'wheel'并且在滾輪事件使用WheelEvent就能搞定。
//增加鼠標(biāo)事件
var EVENTS = ['mousedown', 'mouseup', 'click', 'dblclick', 'mousemove',
'mousewheel', 'DOMMouseScroll','wheel',
'touchstart', 'touchend', 'touchmove', 'touchcancel'
];
//創(chuàng)建鼠標(biāo)事件
let newE=new WheelEvent(eName, obj);
echarts-gl 中maptalks案例圖

18ddb9d3ad34417f913c7d029ecb671b_tplv-k3u1fbpfcp-watermark.png

4ae565881a184c7bbd50af1ee9b4bd33_tplv-k3u1fbpfcp-watermark.png
參考資料:
https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/WheelEvent
https://github.com/maptalks/maptalks.js
https://github.com/ecomfe/echarts-gl