IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

fonction redimensionnement div


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut fonction redimensionnement div
    Bonjour,

    J'ai fait une fonction permettant le redimensionnnement d'un div. Ca marche, sauf dans le cas où on fait descendre le scroll vertical...

    En fait, la position de ma souris se décale de la distance de laquelle on est descendus avec le scroll...

    Comment y remédier?
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    var xinit; // position de la souris au clic sur le div
    var yinit;
    var x; // position de l'élément au départ
    var y;
    var initier = false; // si on est en train de cliquer
    var idEnCours; // id du div qui est en cours de modif
     
    function init(e, id){
    	idEnCours = id;
    	initier = true;
    	xtmp = document.getElementById(id).offsetLeft;
    	ytmp = document.getElementById(id).offsetTop;
    	x = document.getElementById(id).offsetLeft;
    	y = document.getElementById(id).offsetTop;
    	xinit = e.clientX;
    	yinit = e.clientY;
    }
     
    function bouge(e){
    	// si on a cliqué et qu'on bouge
    	if(initier){
    		xtmp = document.getElementById(idEnCours).offsetLeft;
    		ytmp = document.getElementById(idEnCours).offsetTop;
    		document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (e.clientX - x - document.getElementById(idEnCours).offsetWidth+10)+ "px";
    		document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight+12)+ "px";
    	}
    }
     
    function fin(e){
    	initier = false;
    }
    Et l'appel de ces fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <body onmousemove="bouge(event);" onmouseup="fin(event);">
    <div id=boxHandle style="LEFT: 505px; WIDTH: 275px; TOP: 405px; HEIGHT: 214px">
    <DIV class=carre_resize onmousedown="init(event,'boxHandle');" id=carre_resize></DIV>
    </div>
    </body>
    Le div carre_resize sert de poignée pour la redimension...

    Une idée?

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Bonjour,
    J'ai essayé ton code avec de la mise en couleur pour comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body onmousemove="bouge(event);" onmouseup="fin(event);">
    <div id="boxHandle" style="left:505px; top:405px; width:275px; height:214px; background:#CFCFCF;">
    <DIV class="carre_resize" style="border:1px solid #000; height:20px; background:#AAAAAA;" onmousedown="init(event,'boxHandle');" id="carre_resize"></DIV>
    </div>
    De quel scroll vertical parles tu ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Si ta page a beaucoup de contenu, la barre de scroll vertical de la page apparait à droite...

    Et la souris se décale du div carre resize vers le bas de la hauteur de ton scroll vertical...

    Je pense qu'en soustrayant la valeur du scroll vertical, ca pourrait marcher...

    Comment faire pour récupérer la valeur du scroll vertical de la page?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    pas suivi tout le problème, mais
    Citation Envoyé par calitom Voir le message
    Comment faire pour récupérer la valeur du scroll vertical de la page?
    ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.scrollTop;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai essayé, mais ca me renvoi toujours 0 même si je bouge l'ascenseur de droite...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai trouvé. En fait, apparemment, selon le doctype il faut mettre document.documentElement.scrollTop ou document.body.scrollTop....

    Ca marche donc quand je fais document.documentElement.scrollTop...

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Voici donc la modification que j'ai apportée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function bouge(e){
    	// si on a cliqué et qu'on bouge
    	if(initier){
    		xtmp = document.getElementById(idEnCours).offsetLeft;
    		ytmp = document.getElementById(idEnCours).offsetTop;
    		document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (e.clientX - x - document.getElementById(idEnCours).offsetWidth+10)+ "px";
    		document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight+12+document.documentElement.scrollTop)+ "px";
    	}
    }
    Et c'est bon, maintenant mon div se redimensionne peu importe la position du scroll vertical...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. associer une fonction à une <div>
    Par Mike35 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/09/2008, 02h43
  2. fonction redimensionnement marche pas sous firefox
    Par calitom dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/09/2007, 14h39
  3. Comment redimensionner div
    Par calitom dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 17/08/2007, 09h58
  4. [CSS] Créer un style en fonction du div parent
    Par titoumimi dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/02/2006, 09h33
  5. Redimensionnement DIV par javascript
    Par PoZZyX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo