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

Mise en page CSS Discussion :

Positionnement d'une popup HTML


Sujet :

Positionnement en CSS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Points : 89
    Points
    89
    Par défaut Positionnement d'une popup HTML
    Bonjour,

    Tout d'abord j'espère poster au bon endroit, je pense que mon problème doit se résoudre au niveau du CSS, mais pas sur de mon coup.

    Sur un site, j'affiche une popup en cliquant sur des images.
    C'est une popup html qui s'affiche grâce a javascript en passant le style de la popup de "visible " a "hiden".
    ça se passe bien mais lorsque je suis en bas de page je ne vois plus la popup s'afficher.
    J'aimerais que ma popup s'affiche au centre de l'écran quelques soit la position dans la page.

    Vous comprendrez mieux le problème en regardant cette page: http://ylegris.free.fr/pb-popup/cas1.php
    Si vous cliquez sur les premières images la fenêtre apparait nickel, mais plus on descend dans la page et plus la popup se retrouve hors du champ de vision.

    Comment puis-je faire ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Bonjour,

    Il suffit de détecter la position du scroll en JS et affecter la valeur à la propriété top, il faudrait donc virer le top:50% et le margin-top:-210px, tu peux centrer ton bloc verticalement en JS :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function Afficher_fiche(anId) {
    	var PositionScroll = document.documentElement.scrollTop || window.pageYOffset;
     
    	var HauteurBloc = document.getElementById(anId).offsetHeight;
    	var HauteurViewport = document.documentElement.clientHeight || window.innerHeight;
     
    	var a = Math.ceil((HauteurViewport - HauteurBloc) / 2);
    	b = a + PositionScroll;
    		if	(b < 0) { b = 0; }	
     
    	document.getElementById(anId).style.top = b + 'px';
    	document.getElementById(anId).style.visibility = 'visible';
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Points : 89
    Points
    89
    Par défaut

    Nickel, merci beaucoup

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Je viens de me rendre compte qu'Internet explorer n'aime pas.

    Ça marche bien sous firefox, safari et chrome, mais sous ie (sacré ie), la fenêtre ne s'affiche pas qu'en je clique sur les premières images, mais ça marche a partir de la 5 ou 6éme.

    Voyez par vous même http://ylegris.free.fr/pb-popup/cas2.php

    Aurait-il un problème avec la position du scroll ?

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Macmillenium, yann123456

    autrement:
    Code CSS : 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
    #fiche0.fiche {
    	position:fixed;
    	width:500px;
    	height:200px;
    	left:50%;
    	top:50%;
    	margin-top: -100px;
    	margin-left: -250px;	
    	visibility: hidden;
    	font-family:arial, verdana, sans-serif;
    	text-align:justify;
    	font-size:12px;
    	background: white;
    	padding: 5px;
    	border: 1px solid #62c0f4;	
    	color:#396a86;
    }

  6. #6
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Ah dsl il faut mettre window.pageYOffse avant.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var PositionScroll = window.pageYOffset || document.documentElement.scrollTop;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 155
    Points : 89
    Points
    89
    Par défaut
    Merci vodiem pour ton aide.

    Mais dans ce cas (et si j'ai bien compris) je vais devoir faire un code css pour chaque fiche. non ?

    Dans mon exemple il n'y a qu'une seule fiche qui est appelé pour toutes les images, mais en réalité, il y a une fiche pour chaque image (fiche0, fiche1, fiche2...)

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    non tu crées uniquement une classe.

    je n'ai pas tout regardé dans ton code c'est pour cela que j'ai précisé #fiche0.fiche pour ne pas remplacer .fiche qui aurait pu être utilisé par d'autre élément.


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

Discussions similaires

  1. Est il possible de positionner une popup alert ?
    Par mappy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2006, 19h25
  2. Réponses: 6
    Dernier message: 10/04/2006, 12h10
  3. [HTML] Ouvrir une page html en popup appartir de FLASH???
    Par cayalaboca dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 23/03/2006, 13h12
  4. [HTML] Positionnement d'une Tooltip
    Par rosask dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/07/2005, 17h54
  5. Réponses: 2
    Dernier message: 20/07/2005, 13h33

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