Advertisement
Guest User

h

a guest
Mar 23rd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. hammerTime () {
  2.     if (this.state.circles.length === 0) return null
  3.     let index = this.state.circles.length - 1
  4.     let image = this.state.circles[index]
  5.  
  6.     this.state.mc.add(new window.Hammer.Pan())
  7.     this.state.mc.add(new window.Hammer.Pinch())
  8.     let startTop = 0
  9.     let startLeft = 0
  10.  
  11.     const getXandY = (event) => {
  12.       let container = window.jQuery('#pnlDamagePhoto')
  13.       let mark = window.jQuery('.activemark')
  14.       let markWidth = mark.width()
  15.       let markHeight = mark.height()
  16.       let leftScaleModifier = 0
  17.       let topScaleModifier = 0
  18.  
  19.       if (startTop === 0) {
  20.         startTop = parseInt(mark.css('top'), 10)
  21.       }
  22.       if (startLeft === 0) {
  23.         startLeft = parseInt(mark.css('left'), 10)
  24.       }
  25.  
  26.       if (image.scale !== 1) {
  27.         markWidth = markWidth * image.scale
  28.         markHeight = markHeight * image.scale
  29.         leftScaleModifier = (mark.width() - markWidth) / 2
  30.         topScaleModifier = (mark.height() - markHeight) / 2
  31.       }
  32.  
  33.       // Width bounds
  34.       let x = null
  35.       let leftBound = startLeft + event.deltaX + leftScaleModifier > 0
  36.       let rightBound = startLeft + event.deltaX <= container.width() - markWidth - leftScaleModifier
  37.       if (leftBound && rightBound) {
  38.         x = event.deltaX + startLeft
  39.       }
  40.  
  41.       // Height bounds
  42.       let y = null
  43.       let topBound = startTop + event.deltaY + topScaleModifier >= 0
  44.       let bottomBound = startTop + event.deltaY <= container.height() - markHeight - topScaleModifier
  45.       if (topBound && bottomBound) {
  46.         y = event.deltaY + startTop
  47.       }
  48.  
  49.       return {
  50.         x: x,
  51.         y: y
  52.       }
  53.     }
  54.     this.state.mc.on('panmove', (event) => {
  55.       let mark = window.jQuery('.activemark')
  56.       let coordinates = getXandY(event)
  57.       if (coordinates.x !== null) {
  58.         mark.css('left', coordinates.x + 'px')
  59.       }
  60.       if (coordinates.y !== null) {
  61.         mark.css('top', coordinates.y + 'px')
  62.       }
  63.     })
  64.  
  65.     this.state.mc.on('panend', (event) => {
  66.       let {
  67.         circles
  68.     } = this.state
  69.       let mark = window.jQuery('.activemark')
  70.       circles[index].top = parseInt(mark.css('top'), 10)
  71.       circles[index].left = parseInt(mark.css('left'), 10)
  72.       this.setState({
  73.         mc: undefined,
  74.         circles: circles
  75.       })
  76.     })
  77.  
  78.     this.state.mc.on('pinchin', (event) => {
  79.       let mark = window.jQuery('.activemark')
  80.       let scale = event.scale
  81.       var transform = 'scale(' + scale + ')'
  82.       mark.style.webkitTransform = transform
  83.       console.log('test')
  84.     })
  85.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement