const addEvent = (obj, sEv, fn) => { if (obj.addEventListener) { obj.addEventListener(sEv, fn, false) } else { obj.attachEvent('on' + sEv, fn) } } const addWheel = (obj, fn) => { function fnDir(ev) { let oEvent = ev || event let dir = oEvent.wheelDelta ? oEvent.wheelDelta < 0 : oEvent.detail > 0 fn(dir) oEvent.preventDefault && oEvent.preventDefault() return false } if (window.navigator.userAgent.indexOf('Firefox') !== -1) { addEvent(obj, 'DOMMouseScroll', fnDir) } else { addEvent(obj, 'mousewheel', fnDir) } } /* ******************拖拽函数********************** */ const drag = (mapGroup, parentNode, fn) => { // let obj = obj&& typeof obj === 'string'?document.getElementById(obj) : obj; let obj = document.querySelector('#' + mapGroup._renderer.elem.id) // let parentNode = document.querySelector(parentNode) // let pWidth = parentNode.width.baseVal.value // let pHeight = parentNode.height.baseVal.value obj.onmousedown = function (e) { let ev = e || event ev.preventDefault() let disX = ev.clientX - mapGroup.translation.x let disY = ev.clientY - mapGroup.translation.y /* let oWidth = obj.querySelector('image').width.baseVal.value let oHeight = obj.querySelector('image').height.baseVal.value */ // 阻止冒泡事件 ev.stopPropagation ? ev.stopPropagation() : ev.cancelBubble = true document.onmousemove = function (ev) { // let ev = ev || event let json = { x: ev.clientX - disX, y: ev.clientY - disY } fn(json) } document.onmouseup = function (ev) { // let ev = ev || event document.onmousemove = document.onmouseup = null } } } export { addEvent, drag, addWheel }