liuxiaolong
2019-05-06 62dfa881aca867756c9ba8ddd3aa6895d95ebb06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
}