 
 		private function mouseScrollHandler(event : MouseEvent) : void {
 			if (!sliderEnabled) return;
-
-			value = snapValue(_value - event.delta * _snapInterval);
+			
+			var eventDelta : int = event.delta / Math.abs(event.delta);
+
+			var value : Number = snapValue(_value - (eventDelta * _mouseWheelDelta) * _snapInterval);
+
+			// always snap thumb position
+			_thumb.position = valueToThumbPosition(value);
+
+			if (value == _value) return;
+
+			_value = value;
+
+			dispatchChange();
 		}
 
 		private function thumbMoveHandler(event : Event) : void {

			return _snapInterval;
		}
		
		/*
		 * View life cycle
		 */

			
			return rectangle;
		}

	}
}
