|
@@ -624,7 +624,57 @@ UI.Number = function ( number ) {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ function onTouchStart( event ) {
|
|
|
+
|
|
|
+ if ( event.touches.length === 1 ) {
|
|
|
+
|
|
|
+ distance = 0;
|
|
|
|
|
|
+ onMouseDownValue = scope.value;
|
|
|
+
|
|
|
+ prevPointer = [ event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ];
|
|
|
+
|
|
|
+ document.addEventListener( 'touchmove', onTouchMove, false );
|
|
|
+ document.addEventListener( 'touchend', onTouchEnd, false );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function onTouchMove( event ) {
|
|
|
+
|
|
|
+ var currentValue = scope.value;
|
|
|
+
|
|
|
+ pointer = [ event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ];
|
|
|
+
|
|
|
+ distance += ( pointer[ 0 ] - prevPointer[ 0 ] ) - ( pointer[ 1 ] - prevPointer[ 1 ] );
|
|
|
+
|
|
|
+ var value = onMouseDownValue + ( distance / ( event.shiftKey ? 5 : 50 ) ) * scope.step;
|
|
|
+ value = Math.min( scope.max, Math.max( scope.min, value ) );
|
|
|
+
|
|
|
+ if ( currentValue !== value ) {
|
|
|
+
|
|
|
+ scope.setValue( value );
|
|
|
+ dom.dispatchEvent( changeEvent );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ prevPointer = [ event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function onTouchEnd( event ) {
|
|
|
+
|
|
|
+ if ( event.touches.length === 0 ) {
|
|
|
+
|
|
|
+ document.removeEventListener( 'touchmove', onTouchMove, false );
|
|
|
+ document.removeEventListener( 'touchend', onTouchEnd, false );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
function onChange( event ) {
|
|
|
|
|
|
scope.setValue( dom.value );
|
|
@@ -648,6 +698,7 @@ UI.Number = function ( number ) {
|
|
|
onBlur();
|
|
|
|
|
|
dom.addEventListener( 'mousedown', onMouseDown, false );
|
|
|
+ dom.addEventListener( 'touchstart', onTouchStart, false );
|
|
|
dom.addEventListener( 'change', onChange, false );
|
|
|
dom.addEventListener( 'focus', onFocus, false );
|
|
|
dom.addEventListener( 'blur', onBlur, false );
|