11548 sujets

JavaScript, DOM et API Web HTML5

bonjour

j'ai un probleme avec une variable qui contient du texte et des chiffres que je voudrai separer.

la variable est récupérée par

var lef = document.getElementById("miniatures").style.left;

left pouvant etre deplacé par la souris

lef me renvoi -32px par exemple et je voudrais enlever le px.
j'ai bien essayé un substring mais cela pose probleme si la variable vaut -3 ou -50 ou 0.

bon, j'imajine qu'il existe une solution simple mais apres une heures de googelage je ne l'ai pas trouvé.
merci d'avance
Si c'est pour la convertir en nombre en utilisant parseInt ou parseFloat ensuite, ce n'est pas nécessaire normalement. IL s'arrête automatiquement au bon endroit.

PS Pour les modo : A déplacer en section javascript.
Hello,

Si tu es sur que la distance est indiquée en px (pas en pt, em ou %), alors tu peux faire

var lef = document.getElementById("miniatures").style.left.replace("px", "");
merci bien, les deux technique marchent.

j'ai quasiment reussi à terminer mon script du moins en théorie.
il y a un bug que je n'arrive pas a identifier.

le script:
mondiv.onmousemove = function(e) {

           if (ie56 || nn6) { 
           	var lef = document.getElementById("miniatures").style.left;
           } else if (ie4 || ie56) {
           	var lef = document.all.miniatures.style.left;
           } else if (nn4) {
           	var lef = document.miniatures.left;
           };
		   
	var ev = e || window.event;
	var pos = findPos(this);
	var x_mouse = ev.clientX - pos.x;
	var x_mouse = x_mouse - (2*x_mouse);
	var x_div = parseFloat(lef);
	var ecart = x_mouse - x_div;
//	var xx = -50;
	var xx	= parseInt(x_div +(ecart/2));
	var xx2 = xx+"px";

           if (ie56 || nn6) { 
           	document.getElementById("miniatures").style.left= xx2;
           } else if (ie4 || ie56) {
            	document.all.miniatures.style.left= xx2;
           } else if (nn4) {
             	document.miniatures.left= xx;
           };

	            document.getElementById('zone').value = x_mouse ;
	            document.getElementById('zone2').value = x_div ;
				document.getElementById('zone3').value = ecart ;
				document.getElementById('zone4').value = xx ;				
};

la page web en entier
http://zuois.free.fr/test_javascript/position_souris_x_3.html

le script sert a faire se déplacer un div dans un autre en fonction de la position de la souris auquel j'ai rajouté une accélération (et c'est la que ca bugge)
quand j'applique a xx(coordonnée x du div) une valeur fixe ou la position de la souris, ca marche. Mais dès que je rajoute l'accélération ça bugge et la console d'erreur me renvoie "erreur d'analyse pour la propriété "left", déclaration abandonnée"

j'ai eu beau tester et retester mes variable plusieurs fois, je ne comprend pas d'ou vient ce bug.
Avec .style tu ne peux accèder qu'aux propriétés CSS qui sont définies inline (<div id="miniatures" style="left:-20px">), pas dans une feuille de style ou définition externe.

Ton style.left retourne NaN (Not a Number) et donc ta propriété NaNpx n'est pas comprise.
ok ca marche nickel
j'ai pas compris pourquoi ca marchait sans l'acceleration mais bon.
il ne me reste plus qu'a remplacer le onmousemove qui casse un peu l'animation.

merci beaucoup