PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.info.auteurs > Indiquer la position de la souris : javascript ?
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Indiquer la position de la souris : javascript ?

Réponse
 
LinkBack Outils de la discussion
Vieux 26/04/2008, 10h15   #1 (permalink)
Hugolino
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Indiquer la position de la souris : javascript ?

Salut,

Je suis prof de physique et je donne souvent mes TP sous forme de page
HTML.
Dans un TP, <http://urlalacon.com/B2eh1o> j'ai besoin que mes élèves
analysent des jpeg extraits d'une vidéo. J'aurais besoin que s'affiche
dans le navigateur la position de la souris (en pixels).

Est-ce que seul un langage de script comme javascript permettrait de
faire ça, ou est-ce que je peux m'en tirer avec de la css pure. Parce
que javascript, j'y connais rien :/

Tant qu'à faire, si javascript est requis, il faudrait qu'ils puissent
cliquer deux points particuliers de la photo pour que les pixels soit
convertis en millimètre. (parce que je connais la distance entre ces
deux points qui se déplacent sur les photos).

Si vous pouviez me fournir le nom des fonctions javascript qui
permettent de faire ça, je gagnerais un peu de temps dans mes
recherches.

D'ailleurs puisque je ne connais rien à javascript, est-ce qu'il n'y
aurait pas maintenant un langage coté client plus évolué/facile/puissant
que javascript, ou est-ce devenu un standard incontournable ?


Merci de vos avis


--
Il a fallu des millions d'années pour développer la capacité à raisonner
des hommes. Mais il suffit de quelques instants de logique féminine
pour l'abattre.
Hugo (né il y a 1 388 582 249 secondes)
  Réponse avec citation
Vieux 26/04/2008, 10h56   #2 (permalink)
Guy Gruais
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Bonjour,

Vous allez être infiniment heureux d'apprendre que Hugolino vient d'écrire
:

> J'aurais besoin que s'affiche
> dans le navigateur la position de la souris (en pixels).


Dans google, je viens de taper "position de la souris dans une page" et
j'obtiens ceci :

http://www.google.com/search?q=posit...e=utf8&oe=utf8

Yapuka ... ... faire le tri

--
Cordialement

guy.siaurg@free.invalid (inverser siaurg pour retrouver gruais)
http://paysderetz.free.fr/

  Réponse avec citation
Vieux 26/04/2008, 11h39   #3 (permalink)
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Hugolino a écrit :

> Dans un TP, <http://urlalacon.com/B2eh1o> j'ai besoin que mes élèves
> analysent des jpeg extraits d'une vidéo. J'aurais besoin que s'affiche
> dans le navigateur la position de la souris (en pixels).


On pourrait penser que c'est trivial, mais non. Pour avoir la position
dans l'image, il faut déjà savoir où est l'image, car les coordonnées de
clique données par l'événement est relative à la zone d'affichage ou
l'origine du document. Avec l'interface normale DOM :
<http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-eventgroupings-mouseevents>

Il faut donc connaître la position de l'image (pour faire un
changement de coordonnées). Mais.. rien de normalisé (qu'on me corrige
si je me trompe) ne permet de récupérer la position d'un élément.
offsetTop et offsetLeft sont les attributs javascript d'un élément HTML
assez répendus.

Ensuite, attraper les événements de la souris est assez simple, que ce
soit via les attributs HTML
<http://www.w3.org/TR/html4/struct/objects.html#edef-IMG>, l'API DOM
Event
<http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-eventgroupings-mouseevents>,
ou l'objet javascript
<http://developer.mozilla.org/en/docs/DOM:element#Introduction>.

> Est-ce que seul un langage de script comme javascript permettrait de
> faire ça, ou est-ce que je peux m'en tirer avec de la css pure. Parce
> que javascript, j'y connais rien :/


Les CSS sont destinées pour la présentation, pas pour l'interactivité.

> Tant qu'à faire, si javascript est requis, il faudrait qu'ils puissent
> cliquer deux points particuliers de la photo pour que les pixels soit
> convertis en millimètre. (parce que je connais la distance entre ces
> deux points qui se déplacent sur les photos).


Pas de problème, il suffira de le coder.

> D'ailleurs puisque je ne connais rien à javascript, est-ce qu'il n'y
> aurait pas maintenant un langage coté client plus évolué/facile/puissant
> que javascript, ou est-ce devenu un standard incontournable ?


Je me disais bien que c'était un troll
Tu peux utiliser le langage que tu souhaites, il faut que le
navigateur puisse l'interpréter. Ce qu'il y a de plus répandu, ce sont
des dialectes d'ecmascript, abusivement nommés javascript. Il y a entre
autre javascript(mozilla) et jscript(microsoft), sans compter les
implémentations des autres navigateurs qui tentent d'avoir le
comportement le plus proche possible de la norme ou du standard (MS).

Mais javascript est un langage assez simple, je vois difficilement
comment faire plus simple tout en conservant sa puissance. Et en quoi
javascript n'est pas un langage évolué, à défaut d'être évalué (oui,
c'est facile) ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 26/04/2008, 12h48   #4 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Hugolino a écrit :
> Salut,
>
> Je suis prof de physique et je donne souvent mes TP sous forme de page
> HTML.
> Dans un TP, <http://urlalacon.com/B2eh1o> j'ai besoin que mes élèves
> analysent des jpeg extraits d'une vidéo. J'aurais besoin que s'affiche
> dans le navigateur la position de la souris (en pixels).
>
> Est-ce que seul un langage de script comme javascript permettrait de
> faire ça,


oui

> ou est-ce que je peux m'en tirer avec de la css pure.


non

> Parce que javascript, j'y connais rien :/


Il n'est pas trop tard pour s'y mettre :-)

à mettre dans le head du fichier :
(pas certain que mes axes x et y soient les bons ...!)

<script type="text/javascript">
var posx, posy, k;
function MouseCatch(e, px2mm) {
// px2mm est le facteur de conversion pixels --> mm
// relatif à l'image cliquée
posx = e.offsetX ? e.offsetX : e.clientX-e.target.x;
posy = e.offsetY ? e.offsetY : e.clientY-e.target.y;
posx = Math.round(posx * px2mm);
posy = Math.round(posy * px2mm);
window.status='X: '+posx+'mm - Y: '+posy+'mm';
return true;
}
function key(evt) { k = (evt && evt.shiftKey); }
function coords(exo) {
exo = exo.id;
exo += k? '_point_2_' : '_point_1_';
document.monForm[exo+'x'].value = posx;
document.monForm[exo+'y'].value = posy;
}
</script>

et pour le truc bazar, dans le body :

<form action="rapport.php" method="post">
<input type="hidden" value="TP_001">
<h3><u>Clic</u> pour repérer le 1er point et
<u>Majuscule + clic</u> pour le 2ième point :</h3>
<p><img src="exo_001.jpg" id="exo_001"
onmousemove="MouseCatch(event, 0.256);"
onclick="key(event); coords(this);"><br>
Point 1 :
x = <input size=6 name="exo_001_point_1_x">
y = <input size=6 name="exo_001_point_1_y"><br>
Point 2 -
x = <input size=6 name="exo_001_point_2_x">
y = <input size=6 name="exo_001_point_2_y">
</p>
<p><img src="exo_002.jpg" id="exo_002"
onmousemove="MouseCatch(event, 0.647);"
onclick="key(event); coords(this);"><br>
Point 1 :
x = <input size=6 name="exo_002_point_1_x">
y = <input size=6 name="exo_002_point_1_y"><br>
Point 2 -
x = <input size=6 name="exo_002_point_2_x">
y = <input size=6 name="exo_002_point_2_y">
</p>
.... etc ...
<p><input type=submit>
</form>

> Tant qu'à faire, si javascript est requis, il faudrait qu'ils puissent
> cliquer deux points particuliers de la photo pour que les pixels soit
> convertis en millimètre. (parce que je connais la distance entre ces
> deux points qui se déplacent sur les photos).


mieux vaudrait connaitre le rapport width en px / width en mm de l'image

> D'ailleurs puisque je ne connais rien à javascript, est-ce qu'il n'y
> aurait pas maintenant un langage coté client plus évolué/facile/puissant
> que javascript, ou est-ce devenu un standard incontournable ?


côté client il n'y a que le JS

éventuellement un applet en JAVA ?
(voir si google n'a pas ça en stock ?)


--
sm
  Réponse avec citation
Vieux 26/04/2008, 13h09   #5 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Mickaël Wolff a écrit :
>
> Il faut donc connaître la position de l'image


Ha bon ?

Je n'ai pas ce problème dans mes brouteurs
(même avec IE Mac)
<http://cjoint.com/?eAn6mLCD3z>
en supposant que j'aie compris le but recherché ?!

> Ensuite, attraper les événements de la souris est assez simple, que ce
> soit via les attributs HTML


assez simple ... assez simple ... c'est quand même un peu vite dit :
<http://www.quirksmode.org/js/findpos.html>
<http://www.quirksmode.org/dom/w3c_cssom.html#mousepos>

--
sm
  Réponse avec citation
Vieux 26/04/2008, 14h05   #6 (permalink)
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

SAM a écrit :
> Je n'ai pas ce problème dans mes brouteurs
> (même avec IE Mac)
> <http://cjoint.com/?eAn6mLCD3z>
> en supposant que j'aie compris le but recherché ?!


Arf, ben au temps pour moi, j'étais persuadé que offsetWidth et
compagnie étaient absolus et non relatifs, ce qui change tout. Du coup,
c'est trivial.

> assez simple ... assez simple ... c'est quand même un peu vite dit :


Quelque chose d'assez simple n'est pas quelque chose de trivial :p

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 27/04/2008, 16h28   #7 (permalink)
Hugolino
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Le Sat, 26 Apr 2008 11:56:50 +0200, Guy Gruais a écrit:
> Bonjour,
>
> Vous allez être infiniment heureux d'apprendre que Hugolino vient d'écrire
> :
>
> > J'aurais besoin que s'affiche dans le navigateur la position de la
> > souris (en pixels).

>
> Dans google, je viens de taper "position de la souris dans une page" et
> j'obtiens ceci :
>
> http://www.google.com/search?q=posit...e=utf8&oe=utf8
>
> Yapuka ... ... faire le tri


Oops!
<plates excuses>
Marrant comment je peux oublier de googliser alors que je suis sue le
web au moins 4 heures par jour...
</plates excuses>


--
> la plupart des automobilistes n'ont aucune idée de comment fonctionne
> une moto

Si : trop vite, et en faisant trop de bruit.
Hugo (né il y a 1 388 759 135 secondes)
  Réponse avec citation
Vieux 27/04/2008, 16h59   #8 (permalink)
Hugolino
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Indiquer la position de la souris : javascript ?

Le Sat, 26 Apr 2008 12:39:00 +0200, Mickaël Wolff a écrit:
> Hugolino a écrit :
>
> > Dans un TP, <http://urlalacon.com/B2eh1o> j'ai besoin que mes élèves
> > analysent des jpeg extraits d'une vidéo. J'aurais besoin que s'affiche
> > dans le navigateur la position de la souris (en pixels).

>
> On pourrait penser que c'est trivial, mais non. Pour avoir la position
> dans l'image, il faut déjà savoir où est l'image, car les coordonnées de
> clique données par l'événement est relative à la zone d'affichage ou
> l'origine du document.


Attention, je veux d'une part que:
* la position de la souris (x et y) soit constamment affichée dans deux
champs (champ_x_px et champ_y_px) et mise à jour en temps réel, pas
que le user soit obligé de cliquer.
* que lors d'un clic, la position de la souris soient affichées dans
deux autres champs, appelons-les champA_x et champA_y
* que lors d'un MAJ-clic (merci à SAM pour l'idée) la position de la
souris soit affichée dans champB_x et champB_y, et puisque je connais
la dimension de la pièce en plastique, qu'un facteur de conversion
entre pixel et mm soit calculé et que finalement, en dessous de
champ_x_px et champ_y_px, soit troujours en temps réel, affiché les
coordonnée de la souris en mm à partir du coin supérieur gauche de la
photo.

> Avec l'interface normale DOM :

Tout ce que je sais de DOM, c'est que ça signifie "Document Object
Model", mais je ne sais pas vraiment à quoi ça sert, si c'est
indispensable pour faire ce que je veux et si ça va être facile à
comprendre.
J'ai jeté un oeil sur sa définition sur wikipedia, ça a l'air quand même
d'un marteau pour écraser une mouche quand on le rapporte à mon petit
problème

> <http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-eventgroupings-mouseevents>


Malheureusement en anglais, que j'arrive à lire une fois que j'ai
apréhendé les notions de bases à partir d'un document en français.

> Il faut donc connaître la position de l'image (pour faire un
> changement de coordonnées). Mais.. rien de normalisé (qu'on me corrige
> si je me trompe) ne permet de récupérer la position d'un élément.
> offsetTop et offsetLeft sont les attributs javascript d'un élément HTML
> assez répendus.


Si ça pose un problème, je mets toutes les marges à zéro et je coince
l'image en haut à gauche.

> Ensuite, attraper les événements de la souris est assez simple, que ce
> soit via les attributs HTML
> <http://www.w3.org/TR/html4/struct/objects.html#edef-IMG>, l'API DOM
> Event
> <http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-eventgroupings-mouseevents>,
> ou l'objet javascript
> <http://developer.mozilla.org/en/docs/DOM:element#Introduction>.



> > Est-ce que seul un langage de script comme javascript permettrait de
> > faire ça, ou est-ce que je peux m'en tirer avec de la css pure. Parce
> > que javascript, j'y connais rien :/

>
> Les CSS sont destinées pour la présentation, pas pour l'interactivité.


C'est juste, mais j'ai été surpris par certains sites qui ne fonctionne
qu'avec les CSS alors que j'étais à première vue persuadé qu'il y a
avait des scripts derrière...

> > Tant qu'à faire, si javascript est requis, il faudrait qu'ils puissent
> > cliquer deux points particuliers de la photo pour que les pixels soit
> > convertis en millimètre. (parce que je connais la distance entre ces
> > deux points qui se déplacent sur les photos).

>
> Pas de problème, il suffira de le coder.


Il s'agira d'une bête mise à l'échelle.

> > D'ailleurs puisque je ne connais rien à javascript, est-ce qu'il n'y
> > aurait pas maintenant un langage coté client plus évolué/facile/puissant
> > que javascript, ou est-ce devenu un standard incontournable ?

>
> Je me disais bien que c'était un troll


J'avoue ne pas comprendre en quoi mon poste peut passer pour un troll.

> Tu peux utiliser le langage que tu souhaites, il faut que le
> navigateur puisse l'interpréter. Ce qu'il y a de plus répandu, ce sont
> des dialectes d'ecmascript, abusivement nommés javascript. Il y a entre
> autre javascript(mozilla) et jscript(microsoft), sans compter les
> implémentations des autres navigateurs qui tentent d'avoir le
> comportement le plus proche possible de la norme ou du standard (MS).
>
> Mais javascript est un langage assez simple, je vois difficilement
> comment faire plus simple tout en conservant sa puissance. Et en quoi
> javascript n'est pas un langage évolué, à défaut d'être évalué (oui,
> c'est facile) ?


Bon, bin va falloir s'y mettre



--
C'est l'histoire d'un gars qui veut la machine la plus puissante du
monde sous Windows 95 en emulation sous Wine qui tourne sur une station
FreeBSD avec bibliotheque de compatibilite Linux.
Hugo (né il y a 1 388 766 415 secondes)
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 21h40.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,18992 seconds with 16 queries