Zoomer = {
  config: {
    maxZoom: 3
  , zoomSpeed: 10
  }
, disabled: false
, overflower: document.createElement('div')
, zoomWrapper: document.createElement('div')
, overflowPreventer: document.createElement('div')
, init: function (elementSelector) {
    var self = this
    self.element = document.querySelector(elementSelector)
    if(!self.element) return false
    self.setRequiredStyles()
    self.setListeners()
  }
, setListeners: function () {
    var self = this
    self.currentScrollTop = self.zoomWrapper.scrollTop
    self.zoomWrapper.addEventListener('scroll', function () {
      if(self.disabled) return true
      self.zoom(self.calcDiff(self.zoomWrapper.scrollTop))
    })
  }
, zoom: function (diff) {
    var self = this
    self.element.style.height = Math.round(self.element.clientHeight * diff) + 'px'
    self.element.style.width = Math.round(self.element.clientWidth * diff) + 'px'
  } // Takes a factod (ex. x2)
, calcDiff: function (newScrollTop) {
    var self = this
  , scrollDiff = self.currentScrollTop - newScrollTop
    self.currentScrollTop = newScrollTop
    return scrollDiff / self.scrollHeight + 1
  }
, setRequiredStyles: function () {
    var self = this
    self.zoomWrapperHeight = Math.round(self.element.clientHeight * 100 / self.element.clientWidth) + 'vw'
    self.scrollHeight = self.config.maxZoom * 10 * self.element.clientHeight / self.config.maxZoom

    self.overflower.className = 'zoomer__overflower'
    self.zoomWrapper.className = 'zoomer__wrapper'
    self.overflowPreventer.className = 'zoomer__preventer'

    self.overflower.style.height = self.scrollHeight + 'px'
    self.zoomWrapper.style.height = self.zoomWrapperHeight
    self.zoomWrapper.style.width = '100vw'
    self.overflowPreventer.style.height = self.zoomWrapperHeight
    self.overflowPreventer.style.width = '100vw'

    self.element.parentNode.appendChild(self.zoomWrapper)
    self.element.parentNode.appendChild(self.overflowPreventer)
    self.overflowPreventer.appendChild(self.element)
    self.zoomWrapper.appendChild(self.overflower)

    self.zoomWrapper.scrollTop = self.scrollHeight
  }
}
@@ -53,16 +53,52 @@
  10%0A  %7D%0A
+, position: %7B%0A    x: 0%0A  , y: 0%0A  %7D%0A
 , disabl
@@ -2158,9 +2158,198 @@
 ght%0A  %7D%0A
+, goTo: function (posX, posY) %7B%0A    var self = this%0A    self.position.x = posX%0A    self.position.y = posY%0A    self.element.style.transform = 'matrix(1,0,0,1,' + posX + ',' + posY + ')'%0A  %7D%0A
 %7D

Implement goto for zoomer