Source: temp/jsdocinputdirs/cercalia.control.zoomslider.js

/**
 * @classdesc
 * This control let you zoom in - out using the mouse scroll.<br/>
 * This control is not avaliable in the mobile version.
 * 
 * @constructor 
 * @param {cercaliax.Control.ZoomSliderOptions|undefined} options ZoomSlider options
 * @extends {ol.control.Control}
 */

cercalia.Control.ZoomSlider = function(options){
	
	/**
	 * @private
	 * @type {string}
	 */
	this.name_ = cercalia.MapControls.ZoomSlider;
	
	ol.control.ZoomSlider.call(this, options);
	
	/**
	 * Class name
	 * @private
	 * @type {string}
	 */
	this.CLASS_NAME_ = "cercalia.Control.ZoomSlider";
	 
	/**
	 * @private
	 * @type {string}
	 */
	this.element_ = null;
	
	/**
	 * @private
	 * @type {number}
	 */
	this.top_ = options.top ? options.top : 0;
	
	/**
	 * @private
	 * @type {string}
	 */
	this.position_ = options.position ? options.position : 'left'; 
	
	var self = this;
	var doZoomIn = function(e) {
		var view = self.getMap().getView();
		var currentResolution = view.getResolution();
			
		self.getMap().beforeRender(ol.animation.zoom({
			resolution: currentResolution,
			duration: 250,
			easing: ol.easing.easeOut
		}));
				
		var newResolution = view.constrainResolution(currentResolution, 1);
		view.setResolution(newResolution);
		
		e.stopPropagation();
		e.preventDefault();
	};
		
	var doZoomOut = function(e) {
		var view = self.getMap().getView();
		var currentResolution = view.getResolution();
			
		self.getMap().beforeRender(ol.animation.zoom({
			resolution: currentResolution,
			duration: 250,
			easing: ol.easing.easeOut
		}));
			
		var newResolution = view.constrainResolution(currentResolution, -1);
		view.setResolution(newResolution);
		
		e.stopPropagation();
		e.preventDefault();
	};
	
	// Modificamos los estilos
	var zoomIn = cercalia.jQuery("<button />").addClass("cercalia-zoomslider-zoom-in ui-no-corner-bottom").button({ icons: { primary: "ui-icon-plusthick" }, text: false });
	var zoomOut = cercalia.jQuery("<button />").addClass("cercalia-zoomslider-zoom-out ui-no-corner-top").button({ icons: { primary: "ui-icon-minus" }, text: false });
	  
	zoomIn.on('click', doZoomIn);
	zoomIn.on('touchstart', doZoomIn);
	  
	zoomOut.on('click', doZoomOut);
	zoomOut.on('touchstart', doZoomOut);
	
	var slider = cercalia.jQuery(this.element).css("top", this.top_ + "px");
	
	
	//TODO: llargada del zoom slider segons el nombre de zoom.
	slider.height(200);
	
	slider.find(".ol-zoomslider-thumb").addClass("ui-state-default");
	zoomIn.css("top", (-30) + "px");
	//zoomOut.css("top", (slider.height() - 30 ) + "px");
	zoomOut.css("bottom", (-30) + "px");
		
	this.element_ = slider.addClass("cercalia-zoomslider").append(zoomIn).append(zoomOut).get(0);
	
	this.setPosition(this.position_);
};
ol.inherits(cercalia.Control.ZoomSlider, ol.control.ZoomSlider);


/**
 * Change the ZoomSlider control position.
 * @param {string} position ZoomSlider position, 'left' or 'right'.
 */
cercalia.Control.ZoomSlider.prototype.setPosition = function(position){
	this.position_ = position;

	if(this.position_ == 'left'){
		cercalia.jQuery(this.element_).css({
			left: '28px',
			right : '',
			top: this.top_ + "px"
		});
	} else {
		cercalia.jQuery(this.element_).css({
			right: '22px',
			left : '',
			top: (this.top_ + 35) + "px"
		});		
	}
};