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 :

Différence de innerWidth /innerHeigth IE/firefox


Sujet :

JavaScript

  1. #1
    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
    Points : 4 835
    Points
    4 835
    Par défaut Différence de innerWidth /innerHeigth IE/firefox
    salut a tous , la je sèche ...
    je créer une div via un premier bouton qui s'occupe de la création et de la position premier problème la div n'est pas centrée sous IE7

    Ensuite lors du déplacement , problème également ...

    Voici le code ce sera plus simple :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <style type="text/css">
    	body,html{
    		width:100%;
    		margin:0;
    		padding:0;
    	}
    	.divContenu{
    		width:400px;
    		height:300px;
    		border:1px solid #666;
    		position:absolute;
    		overflow:hidden;
    	}
    </style>
     
    <script type="text/javascript">
     
    	var compteur = null;
    	var d = null ;
    	var hauteurCalcule = null;
    	var largeur = null;
    	var position = null;
    	var positionRight = null;
    	var hauteurContenu  = null;
    	var largeurContenu = null;
     
    	function moins(){
    		//création de la popup
    		createPopup();
    		//Positionnement au centre
    		positionCenter();
    	}
     
     
    	function createPopup(){
    		//création de la div qui contiendra la page appelante
    		var divContenu = document.createElement('div');
    		divContenu.setAttribute("class","divContenu");
    		divContenu.setAttribute("className","divContenu"); //Compatibilité IE
    		divContenu.id =  "titi";
    		//Création du fond
    		document.body.appendChild(divContenu);
    	}
     
    	function positionCenter(){
    		try{
    		//récupération de la largeur disponible
    		//selon ie ou firefox
    		hauteurContenu =document.documentElement.clientHeight ;
    		largeurContenu = document.documentElement.clientWidth ;
    		largeurPopup =  ($('titi').currentStyle) ? parseInt($('titi').currentStyle.width) : parseInt(window.getComputedStyle($('titi'),null).getPropertyValue('width'));
    		hauteurPopup = ($('titi').currentStyle) ? parseInt($('titi').currentStyle.height) : parseInt(window.getComputedStyle($('titi'),null).getPropertyValue('height'));
     
    		//Calcul pour positionner au centre : (largeur contenu / 2) - (largeur popup /2)
    		positionLeft = parseInt(( largeurContenu / 2 )) - (largeurPopup / 2);
    		positionTop = parseInt(( hauteurContenu / 2 )) - (hauteurPopup / 2);
    		//on positionne à gauche
    		$('titi').style.marginLeft = positionLeft + "px";
    		//on positionne par rapport au top
    		$('titi').style.marginTop = positionTop + "px";
    		}
    		catch(ErrorE){
    			alert(ErrorE.message);
    		}		
    	}
     
    	function $(idElement){
    		return document.getElementById(idElement);
    	}
     
    	function retrecir(){
    	var testtt = false ;
     
    		if((positionLeft + largeurPopup) < (largeurContenu - 30)){
    			positionLeft += 15 ;
    			$('titi').style.marginLeft = positionLeft + "px";
    		}
     
    		if( positionTop >= 0 ){
    			positionTop -= 15 ;
    			$('titi').style.marginTop = positionTop + "px";
    		}
     
    		if(( (positionLeft + largeurPopup) <= largeurContenu) || ( positionTop >= 0 )){
    			testtt = true;
    		}
     
    		if(testtt){
    			compteur = setTimeout('retrecir()',1);
    		}
    		else{
    			clearTimeout(compteur);
    			alert("stop");
    		}
    	}
     
    </script>
    </head>
     
    <body>
    <div id="debug">
    </div>
     
    <input type="button" value="La replacer" onclick="retrecir()" />
    <input type="button" value="Créer la div" onclick="moins()" />
     
    </body>
    </html>
    merci ^^

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    si tu utilisais les pourcentages plutôt que les pixels pour positionner ton div ?

    clientHeight et clientWidth ne correspondent pas aux dimensions de la page (qui est visuellement celle de ton écran) mais à la hauteur du document.

  3. #3
    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
    Points : 4 835
    Points
    4 835
    Par défaut
    Le problème c'est que pour repositionner ma div en haut à droite par exemple , je ne pourrais pas calculer les % avec la largeur de la div en px
    Mais j'ai peut-être trouvé une solution en positionnant la div en javascript a sa création ... je finis et je posterais mais si quelqu'un a une solution ...

    Merci ^^

Discussions similaires

  1. Différence affichage entre IE et Firefox
    Par pasc06 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 29/03/2010, 13h29
  2. Différences affichage Internet Explorer et Firefox
    Par afroweb dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 11/09/2009, 22h40
  3. Différence IE/Firefox : Retour Chariot "\n" et Tab
    Par Nardanaito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/11/2008, 23h12
  4. [C#][1.1] Problèmes de différences d'affichage I.E. / Firefox
    Par Monstros Velu dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/06/2006, 20h05
  5. Différence IE et Firefox
    Par Jibees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2006, 10h57

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