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 :

Centrer une fenetre modale ou un pop up


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 33
    Points : 17
    Points
    17
    Par défaut Centrer une fenetre modale ou un pop up
    Bonjour à tous,

    Il est vrai que parfois les voies de l'informatique sont impénétrables...

    Voici mon problème :
    En cliquant sur une image je désire ouvrir une fenêtre modale ou un pop up (j'hésite entre l'une ou l'autre dénomination !!) en cherchant à la centrer sur l'écran.
    Tout se passe très bien sur un écran de taille 1366x637, mais sur un autre écran de taille 1280x933 ma fenêtre est bien centrée verticalement mais non horizontalement, elle se trouve sur le bord gauche de l'écran.
    La taille de ma fenêtre étant de 770x446, la valeur attribuée à left doit être de 298 pour le premier écran et 255 pour l'autre, donc pourquoi ce problème ?

    Voici mon code en javascript :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		function ouverture(delib,largeur,hauteur)
    		{
    			if (window.innerWidth)
    			{
    				var gauche=(window.innerWidth-largeur)/2;
    				var haut=(window.innerHeight-hauteur)/2;
    			}
    		 window.open(delib,"","menubar=no, resizable=no, width=" +largeur+" ,height=" +hauteur+" ,left=" +gauche+" top=" + haut);
    		}
    	//-->
    	</script>

    et l'appel de la fonction en php
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... onclick="ouverture('delib_1.jpg',770,446);"

    Merci de bien accepter d'essayer de résoudre ce problème.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    En cliquant sur une image je désire ouvrir une fenêtre modale ou un pop up (j'hésite entre l'une ou l'autre dénomination !!)
    comme tu utilises window.open il s'agit bien d'une « popup ».

    Je ne vais pas répondre à ton pourquoi mais te conseiller de regarder du coté des « lightBox» qui sont très facile à mettre en oeuvre, et à centrer via le CSS.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Je ne vais pas répondre à ton pourquoi mais te conseiller de regarder du coté des « lightBox» qui sont très facile à mettre en oeuvre, et à centrer via le CSS.
    Merci NoSmoking,
    Je suis tout à fait d'accord avec toi, d'autant plus que j'utilise les "lightBox" agencées via le CSS, mais comme je veux mettre en exergue plusieurs "images" de tailles différentes alors que la fenêtre crée par la "lightBox" a une taille prédéfinie (à moins que dans le CSS je puisse la paramétrer ?), cela ne fait pas très joli. Donc j'ai poussé la curiosité un peu plus loin en utilisant le bout de code présenté plus haut. Et quelle fut ma surprise en apercevant l’inconvénient explicité.

    Je vais me simplifier la tâche en utilisant des 'lightbox" mais toutefois, curiosité oblige, j'aimerais connaître la raison de cet inconvénient, sans plus.

    Merci, au plaisir.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Il semblerait que tu « confusionnes » entre la fenêtre d'affichage et la largeur de l'écran ce qui peut-être notablement différent.

    En utilisant les données de l'écran cela pourrait donner cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ouverture(delib, largeur, hauteur) {
      var gauche = (screen.width - largeur) / 2;
      var haut = (screen.height - hauteur) / 2;
      window.open(delib, '', 'menubar=no, resizable=no, width=' + largeur + ' ,height=' + hauteur + ' ,left=' + gauche + ' top=' + haut);
    }

  5. #5
    Membre actif
    Inscrit en
    Février 2009
    Messages
    619
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 619
    Points : 249
    Points
    249
    Par défaut
    Bonjour,

    Avec bootstrap, vous pouvez aussi réaliser cela très simplement,

    http://v4-alpha.getbootstrap.com/components/modal/


  6. #6
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 580
    Points
    580
    Par défaut
    Bonsoir,

    Serait-ce une virgule manquante (avant le "top")?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open(delib,"","menubar=no, resizable=no, width=" +largeur+" ,height=" +hauteur+" ,left=" +gauche+", top=" + haut);
    Ou, peut-être, un problème de nombre décimal?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var gauche=Math.floor((window.innerWidth-largeur)/2);
    var haut=Math.floor((window.innerHeight-hauteur)/2);

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Citation Envoyé par eleydet
    Serait-ce une virgule manquante (avant le "top")?
    c'est effectivement potentiellement un soucis sur certains navigateurs et je vois, après test, que FireFox rechigne.

    Le soucis principal dans cette démarche est, me semble t-il, que la nouvelle fenêtre se place par rapport à l'écran et non par rapport à la fenêtre qui l'a ouverte.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Bonjour NoSmoking,
    Je comprends, mais pourquoi ce souci n'apparaît pas sur certains écrans ?
    Merci d'avoir consacré un peu de ton temps à essayer de répondre à ma question.

    Merci également aux autres intervenants, et malgré leurs conseils rien n'y fait

    Bonne journée

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Quel code utilises-tu ?
    As tu fais un console.log des valeurs lues ?

Discussions similaires

  1. Centrer une fenetre
    Par Terminator dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 24/04/2006, 11h23
  2. centrer une fenetre prompt
    Par zozolh2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2006, 12h07
  3. liberation de memoire d une fenetre modale
    Par ienien dans le forum MFC
    Réponses: 6
    Dernier message: 04/01/2006, 13h53
  4. Réponses: 4
    Dernier message: 24/11/2005, 09h34
  5. Comment fermer une Fenetre Modal avec Code ?
    Par Soulama dans le forum Langage
    Réponses: 19
    Dernier message: 13/07/2005, 11h17

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