begin process at 2012 05 29 15:16:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Pb récupération position curseur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb récupération position curseur

mercredi 11 octobre 2006 à 08:02:30 | Pb récupération position curseur

jlfcdvg

Bonjour
Je voudrais soumettre ce problème à votre sagacité.
Sur une page destinée à un fichier d'aide au format chm, j'affiche une image dans une bulle
Mais il faut que l'image se mette à gauche ou à droite du curseur selon la position de celui-ci
sinon ça dépasse de la page.
Avant l'abscisse 500 je mets à droite et inversement
Voici le script ( il y a de la récup un peu partout sur le net !! )

<SCRIPT

LANGUAGE="JavaScript" type="text/javascript">
function
GetId(id)
{
return
document.getElementById(id);
}
var
i=false;// La variable i nous dit si la bulle est visible ou non

functionmoveG(e) { //Image ? gauche du curseur
if(i) { // Si la bulle est visible, on calcul en temps reel sa position ideale
if(navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
GetId("curseur").style.left=e.pageX+10;
GetId("curseur").style.top=e.pageY+10;
}
else
{
GetId("curseur").style.left=window.event.x-130;
GetId("curseur").style.top=window.event.y+10+document.body.scrollTop;
// Sous IE lors du scroll la position reste bonne !
}
}
}

function
moveD(e) { //Image ? droite du curseur
if(i) { // Si la bulle est visible, on calcul en temps reel sa position ideale
if(navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
GetId("curseur").style.left=e.pageX+10;
GetId("curseur").style.top=e.pageY+10;
}
else
{
GetId("curseur").style.left=window.event.x+10;
GetId("curseur").style.top=window.event.y+10+document.body.scrollTop;
// Sous IE lors du scroll la position reste bonne !
}
}
}

function
montre(text) {
if(
i==false) {
GetId("curseur").style.visibility="visible";
// Si il est cach? on le rend visible.
GetId("curseur").innerHTML=text;
i=true;
}
}
function
cache() {
if(
i==true) {
GetId("curseur").style.visibility="hidden";
// Si la bulle etait visible on la cache
i=false;
}
}
</SCRIPT>
</HEAD>
<BODY BACKGROUND="wood.jpg" BGCOLOR=#FFFFFF TEXT=#000000 LINK=#0000FF VLINK=#800080 ALINK=#FF0000>
<SCRIPT LANGUAGE="JavaScript">
function
position(e) { //Pour r?cup?rer la position du curseur
varx=event.x+document.body.scrollLeft;
var
y=event.y+document.body.scrollTop;
window.status="Souris x:"+x+" | y:"+y;
}
document.onmousemove=position;

if(
x>500) {
document.onmousemove=moveG;
}
else
{
document.onmousemove=moveD;
}
</SCRIPT>

C'est au niveau de la condiftion "if x>500" que ça ne fonctionne pas
ERREUR : x est indéfini
La bulle s'affiche toujours en haut et à gauche de la page
Quelqu'un a t'il une idée sur la question ?
D'avance merci.
jlfcdvg
mercredi 11 octobre 2006 à 08:53:13 | Re : Pb récupération position curseur

roro06



Bonjour

x étant déclarée à l'intérieur de la fonction position, c'est une variable locale( connue uniquement de la fonction position, et redéclarée à chaque appel).
Solution :

var x;
function position(e){
x=event.x+document.body.scrollLeft;
etc ...

comme tu avais fait pour i
(idem, évidemment pour y)

Cordialement
Roro webDev
mercredi 11 octobre 2006 à 09:19:34 | Re : Pb récupération position curseur

jlfcdvg

Bonjour
Merci pour la réponse
Je n'ai plus d'erreur mais la vignette reste à droite même si le curseur est >500,
comme si la condition if (x>500) ... etc n'était pas prise en compte
jlfcdvg
mercredi 11 octobre 2006 à 09:38:50 | Re : Pb récupération position curseur

roro06



Bonjour

Il se trouve que tu as deux fois document.onmousemove sur ta page : c'est une de trop. Voir attachEvent ici :
[ Lien ]

Cordialement
Roro webDev
mercredi 11 octobre 2006 à 12:09:21 | Re : Pb récupération position curseur

jlfcdvg

Merci de te pencher sur mon problème
J'ai essayé AttactEvent mais ça fait la même chose
Voici mon code modifié

<SCRIPT

LANGUAGE="JavaScript" type="text/javascript">
functionGetId(id)
{
returndocument.getElementById(id);
}
vari=false;// La variable i nous dit si la bulle est visible ou non

functionmoveG(e) { //Image ? gauche du curseur
if(i) { // Si la bulle est visible, on calcul en temps reel sa position ideale
if(navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
GetId("curseur").style.left=e.pageX+10;
GetId
("curseur").style.top=e.pageY+10;
}
else {
GetId
("curseur").style.left=window.event.x-130;
GetId
("curseur").style.top=window.event.y+10+document.body.scrollTop;// Sous IE lors du scroll la position reste bonne !
}
}
}

functionmoveD(e) { //Image ? droite du curseur
if(i) { // Si la bulle est visible, on calcul en temps reel sa position ideale
if(navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
GetId("curseur").style.left=e.pageX+10;
GetId
("curseur").style.top=e.pageY+10;
}
else {
GetId
("curseur").style.left=window.event.x+10;
GetId
("curseur").style.top=window.event.y+10+document.body.scrollTop;// Sous IE lors du scroll la position reste bonne !
}
}
}
functionmontre(text) {
if(x>500) {
document
.onmousemove=moveG;
}
else {
document
.onmousemove=moveD;
}
if(i==false) {
GetId
("curseur").style.visibility="visible";// Si il est cach? on le rend visible.
GetId("curseur").innerHTML=text;
i
=true;
}
}
functioncache() {
if(i==true) {
GetId
("curseur").style.visibility="hidden";// Si la bulle etait visible on la cache
i=false;
}
}
varx;
vary;
functionposition(e) { //Pour r?cup?rer la position du curseur
x=event.x+document.body.scrollLeft;
y
=event.y+document.body.scrollTop;
}
</SCRIPT>
Merci

jlfcdvg
mercredi 11 octobre 2006 à 12:49:55 | Re : Pb récupération position curseur

roro06



Bonjour

Arrhhh Que voila une affaire bien compliquée !

Beaucoup plus simple :
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
var xMouse, yMouse;

var xSpacer=0;
var ySpacer=10;
function posSouris(e)
       {
       xMouse = (navigator.appName.substring(0,3) == "Mic") ? event.x+document.body.scrollLeft : e.pageX ;
       yMouse = (navigator.appName.substring(0,3) == "Mic") ? event.y+document.body.scrollTop  : e.pageY ;
   
    xSpacer=(xMouse>500)?-150:10;
   
    if (document.getElementById("divMsg"))
        {
        document.getElementById("divMsg").style.top = yMouse + ySpacer;
        document.getElementById("divMsg").style.left = xMouse + xSpacer;
        }
    }

(navigator.appName.substring(0,3) == "Mic")    ? window.document.attachEvent("onmousemove", posSouris) : window.addEventListener("mousemove", posSouris, false);
  

</script>
</head>

<body>
<div id="divMsg" style="position:absolute; width:150px; height:25px; background-color:black"></div>
</body>
</html>

Une fonction, un écouteur, et hop !
A adapter à tes besoins, naturellement

Cordialement
Roro webDev
mercredi 11 octobre 2006 à 17:17:37 | Re : Pb récupération position curseur

jlfcdvg

Bonjour

Effectivement c'est beaucoup plus simple
Mais comment faire en sorte qu'une image différente apparaisse au lieu du rectangle noir ?
Voici un extrait de ma page

<MAP NAME="ListingType">
<AREA SHAPE="rect" COORDS="9,16,99,31" OnClick='JavaScript:affichepopup("Rappeldutrieffectu? \ngr?ceaumenucontextuel")'HREF="#">
<AREA SHAPE="rect" COORDS="9,46,45,261"ALT="Aper?u de l'?cran obtenu en cliquant sur le n° de la fiche" onmouseover="montre('<IMG SRC=ModificationVignette.jpg BORDER=1 WIDTH=100 HEIGH=75>');" onmouseout="cache();" HREF="modification.html">
<AREA SHAPE="rect" COORDS="53,48,156,264" ALT="Aper?u de l'?cran obtenu en cliquant sur le nom de la fiche" onmouseover="montre('<IMG SRC=fiche.jpg BORDER=1 WIDTH=100 HEIGH=75>');" onmouseout="cache();" HREF="imprimefiche.html">
<AREA SHAPE="rect" COORDS="163,48,416,264" ONCLICK='JavaSript:affichepopup("Surtousleschampsdeceformulaire \nilyapossibilit? detricroissant \noud?croissantparmenucontextuel.\nCliquezsurlen° pourmodifierlafiche, \nsurlenompourl?imprimer \nousurlavignettepourvisualiserune ?tiquette")' HREF="#">
<AREA SHAPE="rect" COORDS="435,47,465,264" ALT="Aper?u de l'?cran obtenu en cliquant sur la vignette" onmouseover="montre('<IMG SRC=ZoomVignette.jpg BORDER=1 WIDTH=100 HEIGH=100>');" onmouseout="cache();" HREF="zoom.html">
<AREA SHAPE="rect" COORDS="9,268,31,292" OnClick='JavaScript:affichepopup("Fermer \nceformulaire")'HREF="#">
</MAP>
<DIV ALIGN="CENTER">
<IMG
SRC="ListingNom.jpg" BORDER=0 WIDTH=485 HEIGHT=305 ALT="" USEMAP="#ListingType">
</DIV>

C'est la fonction montre() qui permet d'afficher une image dans une popup quand la souris survole un certain endroit de l'écran.

Cordialement
jlfcdvg

jeudi 12 octobre 2006 à 09:42:58 | Re : Pb récupération position curseur

roro06



Bonjour

ben au lieu de:
<div id="divMsg" style="position:absolute; width:150px; height:25px; background-color:black"></div>   (c'est mon rectangle noir!) tu mets ce que tu veux. par exemple :
<div id="divMsg" style="position:absolute"><img src="blablabla..."></div>

Cordialement
Roro webDev
jeudi 12 octobre 2006 à 12:17:14 | Re : Pb récupération position curseur

jlfcdvg

Bonjour
Ca marche !
Mais je ne vois pas comment mettre une image différente selon que la souris survole une zone AREA d'une image ou bien une autre par la méthode onmouseover .
Merci
jlfcdvg
jeudi 12 octobre 2006 à 12:55:17 | Re : Pb récupération position curseur

roro06



Bonjour

<div id="divMsg" style="position:absolute"><img src="blablabla..." id="monImage"></div>
<area ... onmouseover="document.getElementById('monImage').src='image1.jpg'">
<area ... onmouseover="document.getElementById('monImage').src='image2.jpg'">
<area ... onmouseover="document.getElementById('monImage').src='image3.jpg'">
etc ...

(d'autres solutions sont possibles)

Cordialement
Roro webDev


Cette discussion est classée dans : style, curseur, position, document, getid


Répondre à ce message

Sujets en rapport avec ce message

Liste d'infobulles [ par pierrer12 ] Salut ... Je suis nouveau sur ce site, et je poste pour demander de l'aide pour la première fois . En fait en partant de la source de Mobman02 sur les Probleme info bulle!!! [ par sabou94 ] Voilà mon probleme : J'ai un tableau où dans les differentes cases et lignes de mon tableau je récupere des données d'une base de données sybase. L'un info bulle js [ par misskis ] Bonjour,J'ai récupéré un script "merci TeDeum" pour créer des info bulle en jsTrés sympa mais j'ai un bug sur ie.Le script :&l Connaître la position du curseur à un temps donné [ par jdmcreator ] Bonjour,J'ai une question tout bête que je ne suis pas capable de régler. Je voudrais avoir la position du curseur à chaque seconde. J'ai tenté d'util Pb Affichage infobulle avec Image sous IE [ par ragmo ] Bonjour, J'ai besoin d'aide concernant l'affichage d'une infobulle contenant une image qui s'affiche au survole d'une vignette. C Problème avec la position du curseur sur IE [ par Aeres ] Bonjour j'ai un petit soucis sous IE [^^sad2] je voudrais faire apparaitre une bulle d'infos à la position de la souris mais event.x semble dépendre d Ajax et firefox [ par Micke7 ] Bonjour, Le code ci-dessous ne fonctionne pas sous firefox et moyennement sous Opera. Il arrive même qu'il buggue sous IE. J'aimerais donc savoir si function met [ par theseif ] Bonjour à tous, dans mes formulaires j'utilise la fonction met pour ouvir ou fermer des tableaux:functionmet1<font color="#008000" Internet Explorer et object [ par bond_never_die ] Bonjour à tous. Voilà, j'ai un petit script qui permet d'afficher dynamiquement une zone d'affichage au dessus de ma page. Problème : sous Internet Ex script incompatible... ? [ par zen69 ] Bonjour tlm!J'ai encore un probleme de compatibilité avec des scripts ....Prenons ces deux fontions...function useShipInfo () {    do


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales