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

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

Coordonnées et taille d'une DIV


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

Coordonnées et taille d'une DIV

mercredi 8 décembre 2010 à 10:08:30 | Coordonnées et taille d'une DIV

gegar12

Tout d'abord, je viens de m'inscrire sur ce forum et je salue tous ses membres.

J'ai trouvé un script qui me permet de bouger des calques (div) et qui fonctionne très bien.
Ce que je souhaiterais, c'est pouvoir récupérer les coordonnées du div (par rapport au bord haut gauche du navigateur) ainsi que sa longueur et sa hauteur.
Je vous remercie pour votre attention !

-- Voici le script :

var X_OTHER = 1;
var X_LEFT = 2;
var X_RIGHT = 3;

var Y_OTHER = 1;
var Y_UP = 2;
var Y_DOWN = 3;

var vgCurrentElement = null;
var vgCurrentPositionX = X_OTHER;
var vgCurrentPositionY = Y_OTHER;

var vgCurrentX = 0;
var vgCurrentY = 0;
var vgCurrentWidth = 0;
var vgCurrentHeight = 0;

var vgMouseX = 0;
var vgMouseY = 0;
var vgMouseDiffX = 0;
var vgMouseDiffY = 0;
var vgMouseDown = false;

var vgTimerMouse;
var vgTimerTime = 20;


//----------------------------//
function position(e)
{
vgMouseX = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
vgMouseY = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
}

//----------------------------//
function fnResizeDiv()
{
if(vgCurrentElement!=null && vgCurrentElement!=undefined)
{
document.getElementById(vgCurrentElement).style.left = vgCurrentX;
document.getElementById(vgCurrentElement).style.top = vgCurrentY;
document.getElementById(vgCurrentElement).style.width = vgCurrentWidth;
document.getElementById(vgCurrentElement).style.height = vgCurrentHeight;
}
}

//----------------------------//
function fnOnMouseDown()
{
vgMouseDown = true;

if(vgCurrentElement!=null && vgCurrentElement!=undefined)
{
//Init of size
vgCurrentX = document.getElementById(vgCurrentElement).offsetLeft;
vgCurrentY = document.getElementById(vgCurrentElement).offsetTop;
vgCurrentWidth = document.getElementById(vgCurrentElement).offsetWidth;
vgCurrentHeight = document.getElementById(vgCurrentElement).offsetHeight;

//Init of distance
vgMouseDiffX = vgMouseX-vgCurrentX;
vgMouseDiffY = vgMouseY-vgCurrentY;

//Init of position
if(vgMouseDiffX < 20 || (vgCurrentWidth-vgMouseDiffX) < 20)
{
if(vgMouseDiffX < vgCurrentWidth/2)
vgCurrentPositionX = X_LEFT;
else
vgCurrentPositionX = X_RIGHT;
}
else
vgCurrentPositionX = X_OTHER;



if(vgMouseDiffY < 20 || (vgCurrentHeight-vgMouseDiffY) < 20)
{
if(vgMouseDiffY > vgCurrentHeight/2)
vgCurrentPositionY = Y_DOWN;
else
vgCurrentPositionY = Y_UP;
}
else
vgCurrentPositionY = Y_OTHER;


vgTimerMouse = setInterval("fnOnMouseMove();", vgTimerTime);
}
}

function fnOnMouseUp()
{
vgMouseDown = false;
clearInterval(vgTimerMouse);
}

function fnOnMouseMove()
{
if(vgMouseDown && vgCurrentElement!=null && vgCurrentElement!=undefined)
{
switch(vgCurrentPositionX)
{
case X_LEFT: vgCurrentWidth += vgCurrentX-vgMouseX;
if(vgCurrentWidth<0)
vgCurrentWidth = 0;
else
vgCurrentX = vgMouseX;
break;
case X_RIGHT: vgCurrentWidth = vgMouseX-vgCurrentX;
if(vgCurrentWidth<0)
vgCurrentWidth = 0;
break;
default: break;
}
switch(vgCurrentPositionY)
{
case Y_UP: vgCurrentHeight += vgCurrentY-vgMouseY;
if(vgCurrentHeight<0)
vgCurrentHeight = 0;
else
vgCurrentY = vgMouseY;
break;
case Y_DOWN: vgCurrentHeight = vgMouseY-vgCurrentY;
if(vgCurrentHeight<0)
vgCurrentHeight = 0;
break;
default: break;
}

if(vgCurrentPositionX==X_OTHER && vgCurrentPositionY==Y_OTHER)
{
vgCurrentX = vgMouseX-vgMouseDiffX;
vgCurrentY = vgMouseY-vgMouseDiffY;
}



fnResizeDiv();
}
}

function fnOnMouseOver(sSelectedElementName)
{
if(!vgMouseDown)
{
if(sSelectedElementName==null && sSelectedElementName!="undefined")
{
vgCurrentElement = null;
}
else
{
vgCurrentElement = sSelectedElementName;
}
}
}


//----------------------------//
function fnOnLoad()
{
if(navigator.appName.substring(0,3) == "Net")
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = position;

//fnResizeDiv();
}
mercredi 8 décembre 2010 à 14:09:00 | Re : Coordonnées et taille d'une DIV

PetoleTeam

Membre Club
Bonjour,
on peut utiliser cette fonction, qui existe en 30541 exemplaires sur le net, pour la position
Code Javascript :
//---------------------------
function getPositionObj( Obj){
  var PosX = 0;
  var PosY = 0;
  //-- Recup. Position Objet
  PosX = Obj.offsetLeft;
  PosY = Obj.offsetTop;
  //-- Si propriete existe
  if( Obj.offsetParent){
    //-- Tant qu'un parent existe
    while( Obj = Obj.offsetParent){
      //-- Ajout position Parent
      PosX += Obj.offsetLeft;
      PosY += Obj.offsetTop;
    }
  }
  //-- Retour des positions sous forme d'un objet
  return({left:PosX, top:PosY});
}

pour les dimensions voir du coté de offsetWidth et offsetHeight entre autres clientWidth et clientHeight
;O)
mercredi 8 décembre 2010 à 17:03:34 | Re : Coordonnées et taille d'une DIV

gegar12

merci pour ta réponse !
je vais tester celà


Cette discussion est classée dans : var, document, if, vgcurrentelement, vgcurrentheight


Répondre à ce message

Sujets en rapport avec ce message

Player multi format sécuriter java & php [ par c2bomb ] bonjour a tous,je cherche a afficher mon player,dans une fenetre style popup,mais hélas je suis vraiment nulle en javascript...si quelq'un peut m'aide 2 menuS deroulants java dans une page [ par DEVLYNE ] Bonjour!Sachez que je suis uns très grande débutante mais j'ai un petit souci.J'utilise un logiciel gratuit: Coffee Cup DHTML menu pour faire mes menu Compilation conditionnelle. [ par A3nigma64 ] J'ai trouvé un script assez bien pour faire un compte à rebours mais voila lorsque je l'applique sur une de mes page web le compte à rebours ne s'affi fausse popup [ par macone59 ] Je cherche à faire une fausse popup. C'est à dire qu'au depart j'ai une img visible puis au sur vol de celle-ci une image apparait en plus grand.Voici Afficher texte avec X et Y [ par bshaka ] Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon Affichier un texte avec la position X et Y [ par bshaka ] Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon FORMULAIRE champs obligatoires boutons radio [ par ju0123456789 ] Bonjour,Pour mon site web, je suis en train de créer un formulaire de commande, et j'ai créé un script qui oblige l'utilisateur de rentrer les chamsp probleme incompatibilité IE-FF svp HELP !! [ par ju0123456789 ] Bonjour, depuis plusieurs jours, je mesuis pris la tête pour mon script de mon site web de commande en ligne, mais malheureusement il ne marche pas so Affichage d'horloge [ par bshaka ] Bonjour à tous,J'ai trouvé cette fonction pour afficher l'horloge à une position X Y sur le net, sauf qu'elle n'affiche pas l'horloge à la bonne posit meilleur moyen d'afficher l'heure [ par Bastian60 ] Bonjour,Voici un script que j'ai récupéré :var dayarray=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");var montharray=ne


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,842 sec (4)

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