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 :

[POO] redimensionner div + détecter fin redimensionnement


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut [POO] redimensionner div + détecter fin redimensionnement
    Bonjour,

    Je cherche a détecter la fin du redimensionnement d'un div...
    Jusqu'à maintenant j'appelle une fonction leaveAllAction dans l'événement onmouseup du body.

    Cependant, je viens de remarquer que parfois en allant vite j'arrive à cliquer pour redimensionner relacher la souris rapidement et tandis que le clic de la souris est relacher je peux encore étendre mon div...
    Ma métode ne fonctionne plus dans ce cas...


    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    un code peut-être ??

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Voila le scrip de redimenssionnement dont je me suis inspiré :

    http://www.madiot.info/redim/


    J'arrive à faire apparaître le problème quand je redimensionne sur le côté gauche vers la droite (reduit le carré) et que je vais très rapidement.
    Mais parfois cela arrive sans que j'aille rapidement (mais rarement).
    D'ailleurs j'ai du mal à reproduire le problème, il faut que je m'y reprenne une dizaine de fois...

    Cependant le problème est là et je souhaite le corriger.
    Je ne sais pas trop d'où il vient...
    Peut être car j'utilise l'événement onmouseup du body et que ce n'est pas forcément bon.
    Je ne vois pas comment détecter la fin du redimensionnement autrement

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    ha vi , problème apparut sous FF3 avec la gestion des évènements
    Inspire toi de mon script de drag and drop dans les contributions , pour libérer les évènements ( TRES simple tout est commenté ! )

    http://www.developpez.net/forums/d63...op-delimiteur/

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Je ne comprends pas trop pourquoi il faut libérer les événements?

    Moi le problème que je décris apparait sur IE (pas tester sous FF).

    Je me demander si je ne devais pas ajouter quelque chose à mon code?


    Ce que je veux dire c'est que avec mon script de redimensionnement il est possible par une manip rapide de la souris de pouvoir redimensionner alors que l'on a relacher le clic de la souris... C'est là mon problème. Car mon événement est appellé quand on relache la souris.

    Merci pour votre aide

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    pour 2 raisons :

    - bug FF 3
    - bug FF 3 ^^

    j'avais le problème sous FF uniquement sous ie 6/7 les évènements étaient bien libéré mais lorsque l'on relachais la souris , je pouvais continuer a draguer mes éléments ...

    DONC

    appuis toi sur mon code pour libérer ton évènement

    sinon gère le onmouseup sur le document et non pas sur ta div

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Le onmouseup est bien géré sur document (body).
    Je vais essayer de faire comme toi, j'espère que cela fonctionnera!

    Sous firefox, je n'ai pas ce problème enfin je n'ai pas réussi du tout à le reproduire!

    Peut être est le window.event de IE qui à un problème? Mais je ne comprend pas trop...

    Le bug apparait principalement lorsque je vais sur un autre objet redimensionnable (j'ai un panneau sens interdit qui apparait même...) ou lorsque je clic pour redimensionner et que je bouge rapidement la souris...

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    par contre je ne peux pas vraiment de faire de fonction init en appelant mes objets car j'ai certains div qui portent plusieurs fois les même nom...
    N'exciste t'il pas un événement comme onLoad du body pour un div?

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    le même nom ? si tu parles du même id = GROSSE ERREUR !!
    un id doit être unique

    conseil :
    au click SUR la div , passe this en paramètre

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Si je rajoute document.onmouseup = leaveAllAction(); dans ma fonction moveAction, j'ai le message javascript suivant :

    Non implémenté

    Est ce normal?
    Je dois aussi faire toute une classe?

  11. #11
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    montre nous TON code

  12. #12
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    J'ai réussi en mettant entre guillemet :

    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
     
    function moveAction(p_obj,e){
    	document.onmousemove = "moveAllAction(event)";
    	document.onmouseup	= "leaveAllAction()";
    	if(isClicked == false){
    		modifCurseur(p_obj, e);
    	}
    }
     
    ...
     
    function leaveAllAction(){
    	document.onmousemove = null;
    	document.onmouseup   = null;
    	if (isClicked) {
    		isClicked = false;
    		objectToDrag.style.zIndex = 0;
    	}
    }

    Mais cela ne résoud pas le problème...

  13. #13
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Je crois que cela ne fonctionne pas car si je fais dans mes 2 fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    document.onmousemove = null;
    	document.onmouseup   = null;
    le redimentionnement fonctionne toujours alors qu'il ne devrait marché qu'une fois.

    Et en faisant comme précédemment si j'enlève les événement dans la balise body je ne peux plus redimensionner...

    Donc ce que j'ai fait dans mes 2 fonctions ne marche pas du tout!

  14. #14
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function moveAction(p_obj,e){
    	document.onmousemove = function(e){moveAllAction(e)};
    	document.onmouseup	= function(){leaveAllAction()};
    	if(isClicked == false){
    		modifCurseur(p_obj, e);
    	}
    }

  15. #15
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Cela fonctionne en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function moveAction(p_obj,e){
        document.onmousemove = function(e){moveAllAction(event)};
        document.onmouseup    = function(){leaveAllAction()};
        if(isClicked == false){
            modifCurseur(p_obj, e);
        }
    }
    Mais le problème dont je parle n'est toujours pas corrigé. Il est toujours présent.

  16. #16
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    bon montre moi le code HTML +javascript complet

  17. #17
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Personne ne peux m'aider pour mon problème qui n'apparait qui sous IE et qui est pour les nerveux de la souris?

    Merci pour votre aide

  18. #18
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Comme je l'ai dit je me suis basé sur le code de cette page :

    http://www.madiot.info/redim/

    En faisant source on peut voir le code.

    Pour faire apparaitre le problème simplement il suffit de prendre 2 carré de faire des rectangle un haut dessus de l'autre de la taille de la page (en longeur)
    Ensuite il faut faire un redimensionnement d'un objet et se mettre sur l'autre rapidement et lacher la souris (on voit un sens interdit apparaitre). Et à on peut redimensionner sans que le clic de la souris soit enfoncé.

    Il faut s'y reprendre à plusieurs fois quand même pour y arriver...
    J'y arrive parfois sans me mettre sur l'objet, mais c'est plus dure.

Discussions similaires

  1. redimensionner div + gestion scrollbar
    Par franfr57 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/10/2008, 16h50
  2. fonction redimensionnement div
    Par calitom dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/10/2007, 12h37
  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. Redimensionnement DIV par javascript
    Par PoZZyX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 11h32
  5. [JFrame] Détecter le redimensionnement
    Par narmataru dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 27/05/2005, 17h49

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