 		event.stopPropagation()
 
 		offsetX = (@min / @canvasScaleX()) - @min
-		@value = @valueForPoint(Events.touchEvent(event).clientX - @screenScaledFrame().x) / @canvasScaleX() - offsetX
+		offsetY = (@min / @canvasScaleY()) - @min
+
+		if @width > @height 
+			@value = @valueForPoint(Events.touchEvent(event).clientX - @screenScaledFrame().x) / @canvasScaleX() - offsetX
+		else 
+			@value = @valueForPoint(Events.touchEvent(event).clientY - @screenScaledFrame().y) / @canvasScaleY() - offsetY
+
 		@knob.draggable._touchStart(event)
 		@_updateValue()
 

			return Utils.modulate(value, [0, @height], [@min, @max], true)
		
	animateToValue: (value, animationOptions={curve:"spring(300,25,0)"}) ->
		animationOptions.properties = {x:@pointForValue(value)}
		@knob.animate(animationOptions)
		@knobSize = options.knobSize or 30
		@knob.superLayer = @fill.superLayer = @

		if @width > @height
			@fill.height = @height
		else 
			@fill.width = @width
			
		@fill.borderRadius = @borderRadius

		@knob.draggable.enabled = true
