Guest User

Untitled

a guest
Jul 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. (() => {
  2. let dragStart = false
  3. let div
  4. let startX, startY = 0
  5.  
  6. const evtMouseDown = (e) => {
  7. dragStart = true
  8. document.body.style.userSelect = 'none'
  9. div = document.createElement('div')
  10. div.style.backgroundColor = '#ddd'
  11. div.style.border = '1px solid #aaa'
  12. div.style.opacity = 0.5
  13. div.style.position = 'absolute'
  14. div.style.zIndex = 9999
  15. startX = e.pageX
  16. startY = e.pageY
  17. document.body.appendChild(div)
  18. console.log('mouse down', e)
  19. }
  20.  
  21. const evtMouseMove = (e) => {
  22. if (dragStart) {
  23. if (e.pageX > startX && e.pageY > startY) {
  24. // 右下
  25. div.style.left = `${startX}px`
  26. div.style.top = `${startY}px`
  27. div.style.width = `${e.pageX - startX}px`
  28. div.style.height = `${e.pageY - startY}px`
  29. } else if (e.pageX > startX && e.pageY < startY) {
  30. // 右上
  31. div.style.left = `${startX}px`
  32. div.style.top = `${startY - (startY - e.pageY)}px`
  33. div.style.width = `${e.pageX - startX}px`
  34. div.style.height = `${startY - e.pageY}px`
  35. } else if (e.pageX < startX && e.pageY > startY) {
  36. // 左下
  37. div.style.left = `${startX - (startX - e.pageX)}px`
  38. div.style.top = `${startY}px`
  39. div.style.width = `${startX - e.pageX}px`
  40. div.style.height = `${e.pageY - startY}px`
  41. } else {
  42. // 左上
  43. div.style.left = `${startX - (startX - e.pageX)}px`
  44. div.style.top = `${startY - (startY - e.pageY)}px`
  45. div.style.width = `${startX - e.pageX}px`
  46. div.style.height = `${startY - e.pageY}px`
  47. }
  48. console.log('mouse move', e)
  49. }
  50. }
  51.  
  52. const evtMouseUp = (e) => {
  53. dragStart = false
  54. document.body.style.userSelect = 'auto'
  55. console.log('mouse up', e)
  56. }
  57.  
  58. const addEvent = () => {
  59. document.addEventListener('mousedown', evtMouseDown)
  60. document.addEventListener('mousemove', evtMouseMove)
  61. document.addEventListener('mouseup', evtMouseUp)
  62. }
  63.  
  64. addEvent()
  65.  
  66. })()
Add Comment
Please, Sign In to add comment