begin process at 2012 05 29 07:06:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

Débutants

 > 

Coordonnées +SCROLL


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

Coordonnées +SCROLL

vendredi 17 février 2006 à 22:41:57 | Coordonnées +SCROLL

batmanu

Membre Club
Bonjour,

alors voilà, je cherche à récupérer les coordonnées de ma souris, oui mais...
je voudrais aussi y ajouter la différence de scrolling de la fenêtre pour que ça soit bien au bon endroit vu que c'est calqué sur les coordonnées de la souris.

voici mon code:
function ici() {
   Xpos = event.clientX + document.body.scrollLeft
   Ypos = event.clientY + document.body.scrollTop;
}

mais document.body.scrollLeft (et Top) restent constant malgrès le déplacement de la barre de scroll.

j'ai tout retourné, il y a sûrement quelquechose qui m'échappe...
a l'aide plize :)
samedi 18 février 2006 à 10:07:34 | Re : Coordonnées +SCROLL

bultez

Membre Club

Bonjour,
si je lis bien, normalement c'est bon, enfin avec IE.
un peu plus de code c'est possible ?
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

samedi 18 février 2006 à 12:04:26 | Re : Coordonnées +SCROLL

batmanu

Membre Club

Bonjour,
pour toi, tout est possible, je cherche à afficher une infobulle en survol de lien, voici les fonctions et l'appel (je ne comprends pas pourquoi ça ne marche pas):

<head>
var chaine = "<div id='text' style='position:absolute; left:4px; top:80px; width:1px; height:1px;'></div>"+"<Layer name='text' left='4' top='80' width='100' height='16'></Layer>";
document.write(chaine);

bname = navigator.appName;
var Xpos = 0;
var Ypos = 0;
bversion = parseInt(navigator.appVersion);
var ebulle = 0;

if (bname == "Netscape") {
 brows = true;
}
else {
 brows = false;
}

if(brows) {
 document.captureEvents(Event.MOUSEMOVE);
 function MouveA(evnt) {//netscape
  Xpos = evnt.pageX + window.pageXOffset;
  Ypos = evnt.pageY + window.pageYOffset;
 }
 document.onMouseMove = MouveA;
}
else {
 function MouveB() {//ie    ----     //mystère de cotes à éclaircir, ça bouge quand on scroll dans la page: il ne prend pas en compte le scrolling dans la page
  Xpos = event.clientX + document.body.scrollLeft;//visiblement le deuxième terme reste constant
  Ypos = event.clientY + document.body.scrollTop;//visiblement le deuxième terme reste constant
 }
 document.onmousemove = MouveB;
}

function bubulle() {
 var cx;
 var cy;
 cx = Xpos + 16;
 cy = Ypos - 16;
 if (brows) {
  document.text.left = cx;
  document.text.top = cy;
 }
 else {
  document.all.text.style.left = cx;
  document.all.text.style.top = cy;
 }
 setTimeout("bubulle()", 10);
}

function bulle(texte) {
 if (ebulle == 0) {
  if (brows) {//netscape
   document.layers['text'].document.writeln('<table border=0 cellspacing=1 bgcolor="#000000"><tr><td bgcolor="#FFFFFF"><font color="#000000" size=2 face=arial><nobr>'+texte+'</nobr></font></td></tr></table>');
   document.layers['text'].document.close();
  }
  else {//ie
   text.innerHTML = '<table border=0 cellspacing=1 bgcolor="#000000"><tr><td bgcolor="#FFFFFF" style="padding:6px;" class="degrad"><font color="#000000" size=2 face=arial><nobr>'+texte+'</nobr></font></td></tr></table>';
  }
  ebulle = 1;
 }
}

function cbulle() {
 if (brows) {
  document.layers['text'].document.writeln('');
  document.layers['text'].document.close();
 }
 else {
  text.innerHTML = '';
 }
 ebulle = 0;
}
</head>

<body onload="bubulle();">
<a href="#1" onmouseover="bulle('<i><b>&nbsp;Infos sur lien survolé 01:</b></i><br><hr size=\'1\'>le texte est mis directement dans l\'appel<br>de fonction et c\'est très pratique.<br><br>Il faut juste bien penser aux apostrophes<br>et redimentionner correctement la bulle<br>avec des sauts de ligne en html.')" onmouseout="cbulle()">lien avec bulle en survol 01</a><br><br>
<map name="#2"></map>
<a href="#2" onmouseover="bulle('<i><b>&nbsp;Infos sur lien survolé 02:</b></i><br><hr size=\'1\'>le texte est mis directement dans l\'appel<br>de fonction et c\'est très pratique.<br><br>Il faut juste bien penser aux apostrophes<br>et redimentionner correctement la bulle<br>avec des sauts de ligne en html.')" onmouseout="cbulle()">lien avec bulle en survol 02</a><br><br>
<map name="#3"></map>
</body>

Ca marche quand il n'y a pas de scroll, dès qu'on bouge, ça décale tout: c'est un vrai mystère.
merci pour ton aide :)

samedi 18 février 2006 à 12:47:38 | Re : Coordonnées +SCROLL

bultez

Membre Club

Bonjour,
   désolé...ça marche sans aucun souci avec IE ( je craignais de ne plus savoir lire )
"faut-y" regarder avec le renard de feu ( je ne l'ai pas fait ) ?

<head>
<script type="text/javascript">
var chaine = "<div id='text' style='position:absolute; left:4px; top:80px; width:1px; height:1px;'></div>"+"<Layer name='text' left='4' top='80' width='100' height='16'></Layer>";
document.write(chaine);

bname = navigator.appName;
var Xpos = 0;
var Ypos = 0;
bversion = parseInt(navigator.appVersion);
var ebulle = 0;

if (bname == "Netscape") {
 brows = true;
}
else {
 brows = false;
}

if(brows) {
 document.captureEvents(Event.MOUSEMOVE);
 function MouveA(evnt) {//netscape
  Xpos = evnt.pageX + window.pageXOffset;
  Ypos = evnt.pageY + window.pageYOffset;
 }
 document.onMouseMove = MouveA;
}
else {
 function MouveB() {//ie    ----     //mystère de cotes à éclaircir, ça bouge quand on scroll dans la page: il ne prend pas en compte le scrolling dans la page
  Xpos = event.clientX + document.body.scrollLeft;//visiblement le deuxième terme reste constant
  Ypos = event.clientY + document.body.scrollTop;//visiblement le deuxième terme reste constant
 }
 document.onmousemove = MouveB;
}

function bubulle() {
 var cx;
 var cy;
 cx = Xpos + 16;
 cy = Ypos - 16;
 if (brows) {
  document.text.left = cx;
  document.text.top = cy;
 }
 else {
  document.all.text.style.left = cx;
  document.all.text.style.top = cy;
 }
 setTimeout("bubulle()", 10);
}

function bulle(texte) {
 if (ebulle == 0) {
  if (brows) {//netscape
   document.layers['text'].document.writeln('<table border=0 cellspacing=1 bgcolor="#000000"><tr><td bgcolor="#FFFFFF"><font color="#000000" size=2 face=arial><nobr>'+texte+'</nobr></font></td></tr></table>');
   document.layers['text'].document.close();
  }
  else {//ie
   text.innerHTML = '<table border=0 cellspacing=1 bgcolor="#000000"><tr><td bgcolor="#FFFFFF" style="padding:6px;" class="degrad"><font color="#000000" size=2 face=arial><nobr>'+texte+'</nobr></font></td></tr></table>';
  }
  ebulle = 1;
 }
}

function cbulle() {
 if (brows) {
  document.layers['text'].document.writeln('');
  document.layers['text'].document.close();
 }
 else {
  text.innerHTML = '';
 }
 ebulle = 0;
}
</script>
</head>

<body onload="bubulle();">
<script type="text/javascript">
 for ( var n=0;n<100;n++ )
  document.writeln(n+"<br />");
</script>
<a href="#1" onmouseover="bulle('<i><b>&nbsp;Infos sur lien survolé 01:</b></i><br><hr size=\'1\'>le texte est mis directement dans l\'appel<br>de fonction et c\'est très pratique.<br><br>Il faut juste bien penser aux apostrophes<br>et redimentionner correctement la bulle<br>avec des sauts de ligne en html.')" onmouseout="cbulle()">lien avec bulle en survol 01</a><br><br>
<map name="#2"></map>
<a href="#2" onmouseover="bulle('<i><b>&nbsp;Infos sur lien survolé 02:</b></i><br><hr size=\'1\'>le texte est mis directement dans l\'appel<br>de fonction et c\'est très pratique.<br><br>Il faut juste bien penser aux apostrophes<br>et redimentionner correctement la bulle<br>avec des sauts de ligne en html.')" onmouseout="cbulle()">lien avec bulle en survol 02</a><br><br>
<map name="#3"></map>
</body>


Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

samedi 18 février 2006 à 13:30:27 | Re : Coordonnées +SCROLL

batmanu

Membre Club
tu as essayé en rajoutant des br en quantité à la fin pour simuer une page plus longue ?
pour moi, ça ne marche ni sous ie6 ni sous ie5, ni sous firefox, quand à ma vieille version de safari sous mac elle est à l'agonie...
comprends pas.
samedi 18 février 2006 à 16:19:54 | Re : Coordonnées +SCROLL

bultez

Membre Club

>>tu as essayé en rajoutant des br en quantité à la fin pour simuer une page plus longue ?
oui bien sûr.
moi : PC, Windows XP sp2 tout à jour, Internet Explorer 6.
mais j'avais testé, en son temps, avec Windows 98...
scroll??? n'existent pas depuis hier, il me semble
a-t-on tout ?
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

dimanche 19 février 2006 à 13:30:46 | Re : Coordonnées +SCROLL

batmanu

Membre Club
ben oui, on a tout, c'est un bien grand mystère, je vais essayer de mettre en ligne, peut être que le décalage vers le haut va disparaitre?
je vais éplucher également le reste du fichier des fois que j'ai une variable qui fasse deux choses à la fois...
dimanche 19 février 2006 à 13:57:03 | Re : Coordonnées +SCROLL

batmanu

Membre Club

je n'ai rien trouvé, c'est sûrement le reste du code qui fait interférence, je t'enverais bien le code complet, on pourait faire ça en mail direct?

dimanche 19 février 2006 à 15:16:46 | Re : Coordonnées +SCROLL

bultez

Membre Club

soit donner l'adresse où on peut voir, en ligne
soit me l'envoyer effectivement par mail, et
on promet de mettre la réponse ici, si on trouve...
mon mail : marcel point bultez arobase tiscali point fr
à priori l'erreur vient sûrement d'ailleurs ?
Cordialement. Bul. ~
Mon Site qu'il est à Moi ~

samedi 25 février 2006 à 15:28:15 | Re : Coordonnées +SCROLL

bultez

Membre Club

comme de bien entendu, jai pommé tes coordonnées
et j'ai fait un ch'tit exemple qui gère ce "scroll"
donc je le poste ici, comme on avait dit qu'on donnerait les pistes..
mais il faudra corriger les erreurs de script dans ce que
tu m'as envoyé ( que j'ai sucré aussi !!! )


<html>
<head>
<!--#### fonctions+provoquer le scroll ####--><script type="text/javascript">

 for ( var n=0;n<100;n++ ) //#### ça c'est pour provoquer le scroll ####
 {
  document.writeln(n+"<br />");
 }
 
 function cache() //#### cache l'info bulle ####
 {
  b.style.display="none";
 }
 
 function montre() //#### place et montre l'info bulle ####
 {
  if (ie) { //#### ici c'est IE ####
     b.style.left=event.x+document.body.scrollLeft;
     b.style.top=event.y+document.body.scrollTop;
    }
  else { //#### et là... les autres ####
     b.style.left=evt.pageX;
     b.style.top=evt.pageY;
    }
  b.style.display="inline"; 
 }
 
</script>
</head>
<body>
<!--#### ça c'est une info bulle par exemple #### --><div id="bulle"
  style=" background-color:#FFFF00;
    width:250px;
    height:60px;
    border:1px solid #FF6A22;
    position:absolute;
    z-index=1;
    display:none;">
 exemple de texte<br />
 mais on y met ce qu'on veut<br />
 du html, des images...
</div>
<!--#### la "zone" pour laquelle faire une info bulle ####--><input type="text"
  id="txt"
  onmouseout="cache();"
  value="pour info bulle" />
<br /><br /><br /><br /><br />
<!--#### initialisation ####--><script type="text/javascript">
 var b=document.getElementById("bulle");
 var ie = false; 
/*@cc_on ie = true; @*/ //#### çà çà teste IE et ... les autres #### -->
 document.getElementById("txt").onmouseover = function(event)
 { //#### provoque sur l'évênement nonmouseover, l'appel de la fonction montre #### -->
  evt = event ? event : window.event;
  montre(evt);
 }
</script>

</body>
</html>



Cordialement. Bul. ~ Mon Site qu'il est à Moi ~



Cette discussion est classée dans : document, scroll, souris, body, coordonnées


Répondre à ce message

Sujets en rapport avec ce message

Sous menu [ par jeff_the_lifeguard ] J'aimerai savoir comment pourrais-je faire pour ajouter un sous menu à un menu clique droit. Voice le code#menu{position:absolute;width:155px;border:3 Redimenssionnement proportionnel d'une fenêtre [ par lacouine ] Bonjour,Mon problème est simple mais à la fois compliqué... Cela fait 2 jours que je planche dessus sans pouvoir la parade. Si quelqu'un pouvait m'aid script "Imprimer une zone dans une page web" [ par JPhL ] Bonsoir à tous,Je voudrais imprimer un cadre d'une page web. J'ai donc mis ce script dans la zone à imprimer. Tout fonctionne extra sauf que ma page i pb de neige qui ne tombe pas [ par Mr spud ] bonjour.....j'ai pris le code de neige en hiver feuille en automne et j'ai un message d'erreur quand je regarde la page....."objet requis"voici la lig Evènement onResize [ par initnocsib ] Je souhaite afficher plus ou moins de photos dans un bandeau en fonction de la taille de la fenêtre. voici le code : if (document.body) { var larg = utilisation de createTextRange() [ par rttb ] Salut,Mon probleme est le suivant :J'utilise : window.document.body.createTextRange()Cela fonctionne bien mais c'est le 'body' qui me perturbe, en eff Problème avec document.body.clientHeight [ par Sb01 ] Salut à tous,J'aimerai positionner un calque dans ma page en fonction de la résolution de l'écran. Pour la largeur j'utilise la propriété document.bod deplacer une image à des coordonnées [ par gnosis35 ] salut voilà le pb : je clic sur une image et là j'ai pour tester deux texts box qui récupérent les coordonnées x,y de la souris... bon ça c tres bi Hauteur d'un document [ par fab4001 ] Salut, je voudrais savoir si il est possible de récupérer la hauteur d'une page html en javascript (pas la hauteur du browser !!) ou bien de detecter modification script -- centrer [ par pusse ] Salut a tous j'ai recuperer un script sur le net qui me permet de creer un  liste defilante de liens horizontalement avec action sur des fleches. Le s


Nos sponsors


Sondage...

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 : 0,671 sec (4)

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