11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je suis en train de créer un slider jquery pour gérer le volume sur une balise <audio> html5.

tout marche bien par contre le slider est linéaire mais notre oreille a une réponse logarithmique, ce qui veut dire que entre 50% et 100% notre curseur a très peu d'effet alors que entre 0 et 25% il en a beaucoup plus.

existe t'il des astuces pour modifier la réponse du curseur?

merci
pour ceux que cela pourrait intéresser, j'ai trouvé une solution qui marche très bien et procure un réglage de volume très doux, avec cette fonction trouvée sur le net


	function logslider(position) {
	  // position will be between 0 and 100
	  var minp = 0.01;
	  var maxp = 100;
	
	  // The result should be between 0 an 1
	  var minv = Math.log(0.01);
	  var maxv = Math.log(1);
	
	  // calculate adjustment factor
	  var scale = (maxv-minv) / (maxp-minp);
	
	  return Math.exp(minv + scale*(position-minp));
	}	



ensuite mon code jQuery fait ceci, le div #media étant conteneur de ma balise <audio>


	var mediaElem = document.getElementById("media");
	$('#slider').slider({
		value: 30,
		slide: setNewVolume
		});

	mediaElem.volume = logslider(30);

	
	function setNewVolume() {
	laValue = $('#slider').slider("value");
	laValue = logslider(laValue);
	mediaElem.volume = laValue;	
	}


Modifié par lionel_css3 (11 Feb 2013 - 09:31)