Je souhaite déplacer (haut/bas, droite/gauche) de 10px un marker dans
une div. Commandé par les flèches haut/bas/droite/gauche du clavier.
Bon ça "marchotte" mais quand je clique sur la flèche gauche, ça va bien
à gauche mais de 30px environ.
quand je clique sur droite, ça va -- aussi à gauche -- mais de 10px.
seuls les flèches vers le haut et le bas fonctionne "as expected"...
Je souhaite déplacer (haut/bas, droite/gauche) de 10px un marker dans une div. Commandé par les flèches haut/bas/droite/gauche du clavier .
Bon ça "marchotte" mais quand je clique sur la flèche gauche, ça va bien à gauche mais de 30px environ. quand je clique sur droite, ça va -- aussi à gauche -- mais de 10px . seuls les flèches vers le haut et le bas fonctionne "as expected"...
Bonjour,
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
ça ne résout pas la question, mais il me semble bien que ça situe c e qu'il y a à comprendre pour faire tourner la chose.
Je me demande si style.left est le bon moyen de déplacer l'élément, dans l'affirmative si il y a quelque chose à rafraîchir avant d'interroger les nouvelles propriétés.
function markerMove(dx, dy) { var rect = markerElt.getBoundingClientRect(); write2STDOUT(dx); if(dx != 0) { write2STDOUT("old_left : " + rect.left + "new left : " + (rect.left + 10)); markerElt.style.left = parseInt((rect.left + dx), 10 ) + "px"; markerElt.style.right = parseInt((rect.right + dx), 10 ) + "px"; write2STDOUT(markerElt.style.left); write2STDOUT(markerElt.getBoundingClientRect().left);
Une Bévue a écrit le 13/12/2014 16:14 :
Je souhaite déplacer (haut/bas, droite/gauche) de 10px un marker dans
une div. Commandé par les flèches haut/bas/droite/gauche du clavier .
Bon ça "marchotte" mais quand je clique sur la flèche gauche, ça va bien
à gauche mais de 30px environ.
quand je clique sur droite, ça va -- aussi à gauche -- mais de 10px .
seuls les flèches vers le haut et le bas fonctionne "as expected"...
Bonjour,
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie
sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut
investiguer du côté du séparateur décimal), mais que
markerElt.getBoundingClientRect().left me retourne 465.
ça ne résout pas la question, mais il me semble bien que ça situe c e
qu'il y a à comprendre pour faire tourner la chose.
Je me demande si style.left est le bon moyen de déplacer l'élément, dans
l'affirmative si il y a quelque chose à rafraîchir avant d'interroger
les nouvelles propriétés.
function markerMove(dx, dy) {
var rect = markerElt.getBoundingClientRect();
write2STDOUT(dx);
if(dx != 0) {
write2STDOUT("old_left : " + rect.left + "new left : " +
(rect.left + 10));
markerElt.style.left = parseInt((rect.left + dx), 10 )
+ "px";
markerElt.style.right = parseInt((rect.right + dx), 10 )
+ "px";
write2STDOUT(markerElt.style.left);
write2STDOUT(markerElt.getBoundingClientRect().left);
Je souhaite déplacer (haut/bas, droite/gauche) de 10px un marker dans une div. Commandé par les flèches haut/bas/droite/gauche du clavier .
Bon ça "marchotte" mais quand je clique sur la flèche gauche, ça va bien à gauche mais de 30px environ. quand je clique sur droite, ça va -- aussi à gauche -- mais de 10px . seuls les flèches vers le haut et le bas fonctionne "as expected"...
Bonjour,
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
ça ne résout pas la question, mais il me semble bien que ça situe c e qu'il y a à comprendre pour faire tourner la chose.
Je me demande si style.left est le bon moyen de déplacer l'élément, dans l'affirmative si il y a quelque chose à rafraîchir avant d'interroger les nouvelles propriétés.
function markerMove(dx, dy) { var rect = markerElt.getBoundingClientRect(); write2STDOUT(dx); if(dx != 0) { write2STDOUT("old_left : " + rect.left + "new left : " + (rect.left + 10)); markerElt.style.left = parseInt((rect.left + dx), 10 ) + "px"; markerElt.style.right = parseInt((rect.right + dx), 10 ) + "px"; write2STDOUT(markerElt.style.left); write2STDOUT(markerElt.getBoundingClientRect().left);
Une Bévue
Le 14/12/14 12:37, Gloops a écrit :
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé entre-temps. Je pense que mon erreur était de mettre le style dans les css au lieu d'être in-line : <div id="marker" style="position: absolute;left: 296px;top: 110px;z-index: 9999;"><img class="svg" src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe, peut-être est-ce que les propriétés retournées sont en lecture seule, mais un parseInt(..., 10) ne donne rien ça retourne quand même un nombre décimal si je fais : for(var prop in rect) { if(rect.hasOwnProperty(prop)) { rect[prop] = parseInt(rect[prop]); } }
donc j'ai résolu "tout bêtement" avec le style in-line, et en utilisant : function markerMove(dx, dy) { markerElt.style.left = (parseInt(markerElt.style.left, 10) + dx) + "px"; markerElt.style.top = (parseInt(markerElt.style.top , 10) + dy) + "px"; }
voili-voilou.
Le 14/12/14 12:37, Gloops a écrit :
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie
sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut
investiguer du côté du séparateur décimal), mais que
markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé entre-temps.
Je pense que mon erreur était de mettre le style dans les css au lieu
d'être in-line :
<div id="marker" style="position: absolute;left: 296px;top:
110px;z-index: 9999;"><img class="svg"
src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe,
peut-être est-ce que les propriétés retournées sont en lecture seule,
mais un parseInt(..., 10) ne donne rien ça retourne quand même un nombre
décimal si je fais :
for(var prop in rect) {
if(rect.hasOwnProperty(prop)) {
rect[prop] = parseInt(rect[prop]);
}
}
donc j'ai résolu "tout bêtement" avec le style in-line, et en utilisant :
function markerMove(dx, dy) {
markerElt.style.left = (parseInt(markerElt.style.left, 10) +
dx) + "px";
markerElt.style.top = (parseInt(markerElt.style.top , 10) +
dy) + "px";
}
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'appuie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé entre-temps. Je pense que mon erreur était de mettre le style dans les css au lieu d'être in-line : <div id="marker" style="position: absolute;left: 296px;top: 110px;z-index: 9999;"><img class="svg" src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe, peut-être est-ce que les propriétés retournées sont en lecture seule, mais un parseInt(..., 10) ne donne rien ça retourne quand même un nombre décimal si je fais : for(var prop in rect) { if(rect.hasOwnProperty(prop)) { rect[prop] = parseInt(rect[prop]); } }
donc j'ai résolu "tout bêtement" avec le style in-line, et en utilisant : function markerMove(dx, dy) { markerElt.style.left = (parseInt(markerElt.style.left, 10) + dx) + "px"; markerElt.style.top = (parseInt(markerElt.style.top , 10) + dy) + "px"; }
voili-voilou.
Gloops
Une Bévue a écrit le 14/12/2014 15:00 :
Le 14/12/14 12:37, Gloops a écrit :
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'app uie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé ent re-temps. Je pense que mon erreur était de mettre le style dans les css au lieu d'être in-line : <div id="marker" style="position: absolute;left: 296px;top: 110px;z-index: 9999;"><img class="svg" src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe , peut-être est-ce que les propriétés retournées sont en lecture seule, mais un parseInt(..., 10) ne donne rien ça retourne quand même un n ombre décimal si je fais : for(var prop in rect) { if(rect.hasOwnProperty(prop)) { rect[prop] = parseInt(rect[prop]); } }
donc j'ai résolu "tout bêtement" avec le style in-line, et en utili sant : function markerMove(dx, dy) { markerElt.style.left = (parseInt(markerElt.style.left, 10) + dx) + "px"; markerElt.style.top = (parseInt(markerElt.style.top , 10) + dy) + "px"; }
voili-voilou.
Ah ... J'ai eu un doute au sujet du style, mais j'ai l'impression que je loupais un autre maillon.
Bon ben très bien si ça marche.
Au fait pour la gestion des événements avec les touches tu as utilisé quoi comme doc ?
Une Bévue a écrit le 14/12/2014 15:00 :
Le 14/12/14 12:37, Gloops a écrit :
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'app uie
sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut
investiguer du côté du séparateur décimal), mais que
markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé ent re-temps.
Je pense que mon erreur était de mettre le style dans les css au lieu
d'être in-line :
<div id="marker" style="position: absolute;left: 296px;top:
110px;z-index: 9999;"><img class="svg"
src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe ,
peut-être est-ce que les propriétés retournées sont en lecture seule,
mais un parseInt(..., 10) ne donne rien ça retourne quand même un n ombre
décimal si je fais :
for(var prop in rect) {
if(rect.hasOwnProperty(prop)) {
rect[prop] = parseInt(rect[prop]);
}
}
donc j'ai résolu "tout bêtement" avec le style in-line, et en utili sant :
function markerMove(dx, dy) {
markerElt.style.left = (parseInt(markerElt.style.left, 10) +
dx) + "px";
markerElt.style.top = (parseInt(markerElt.style.top , 10) +
dy) + "px";
}
voili-voilou.
Ah ... J'ai eu un doute au sujet du style, mais j'ai l'impression que je
loupais un autre maillon.
Bon ben très bien si ça marche.
Au fait pour la gestion des événements avec les touches tu as utilisé
quoi comme doc ?
Je m'aperçois qu'en partant d'une position gauche de 465,5, si j'app uie sur droite, j'ai "485px" dans markerElt.style.left (au besoin on peut investiguer du côté du séparateur décimal), mais que markerElt.getBoundingClientRect().left me retourne 465.
Oui, merci beaucoup.
En fait j'ai résolu le problème ce matin, il s'était agravé ent re-temps. Je pense que mon erreur était de mettre le style dans les css au lieu d'être in-line : <div id="marker" style="position: absolute;left: 296px;top: 110px;z-index: 9999;"><img class="svg" src="img/map-marker-green.svg"/></div>
ensuite avec #getBoundingClientRect(), je ne sais pas ce qu'il se passe , peut-être est-ce que les propriétés retournées sont en lecture seule, mais un parseInt(..., 10) ne donne rien ça retourne quand même un n ombre décimal si je fais : for(var prop in rect) { if(rect.hasOwnProperty(prop)) { rect[prop] = parseInt(rect[prop]); } }
donc j'ai résolu "tout bêtement" avec le style in-line, et en utili sant : function markerMove(dx, dy) { markerElt.style.left = (parseInt(markerElt.style.left, 10) + dx) + "px"; markerElt.style.top = (parseInt(markerElt.style.top , 10) + dy) + "px"; }
voili-voilou.
Ah ... J'ai eu un doute au sujet du style, mais j'ai l'impression que je loupais un autre maillon.
Bon ben très bien si ça marche.
Au fait pour la gestion des événements avec les touches tu as utilisé quoi comme doc ?
Une Bévue
Le 14/12/14 21:49, Gloops a écrit :
Au fait pour la gestion des événements avec les touches tu as utilisé quoi comme doc ?
Ceci étant, je ne suis pas certain que : markerElt.style.left = +markerElt.style.left.replace(/px/,'')+dx; ne fonctionne pas aussi ?
Comme c'est un juste truc visuel on peut aussi faire varier les marges de l'élément qui sera positionné en absolute dans un autre (bien calé) Et même, peut-être, utiliser des class pour ce faire, avec l'avantage que ça fonctionnera avec une FdS générale sans attribut style ajouté à l'élément.
Cordialement, -- Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Ceci étant, je ne suis pas certain que :
markerElt.style.left = +markerElt.style.left.replace(/px/,'')+dx;
ne fonctionne pas aussi ?
Comme c'est un juste truc visuel on peut aussi faire varier les marges
de l'élément qui sera positionné en absolute dans un autre (bien calé)
Et même, peut-être, utiliser des class pour ce faire, avec l'avantage
que ça fonctionnera avec une FdS générale sans attribut style ajouté à
l'élément.
Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Ceci étant, je ne suis pas certain que : markerElt.style.left = +markerElt.style.left.replace(/px/,'')+dx; ne fonctionne pas aussi ?
Comme c'est un juste truc visuel on peut aussi faire varier les marges de l'élément qui sera positionné en absolute dans un autre (bien calé) Et même, peut-être, utiliser des class pour ce faire, avec l'avantage que ça fonctionnera avec une FdS générale sans attribut style ajouté à l'élément.
Cordialement, -- Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Une Bévue
Le 16/12/14 18:05, SAM a écrit :
<- 37 ^ 38 -> 39 v 40
bravo, tu auras une crotte en chocolat dans ta chaussette à Noël )))
Le 16/12/14 18:05, SAM a écrit :
<- 37
^ 38
-> 39
v 40
bravo, tu auras une crotte en chocolat dans ta chaussette à Noël )))