Page 1 sur 1

Problème IE JS

Posté : 27 mai 2010, 03:00
par devlop78
Bonjour,

J'ai un problème sur deux lignes (les deux, pas seulement une seule) avec IE (mais sous Firefox et Opéra ça marche !) :

Code : Tout sélectionner

objet.css({position:'absolute',left: (largeur/2 - contact_largeur/2) + 'px',top: (hauteur/2 - contact_hauteur/2) + 'px','z-index':'1000'}); $('#fond').css({position:'absolute',top:'0px',left:'0px',width: largeur + 'px',height: hauteur2 + 'px',backgroundColor:'#000000'});
D'autant que : $(this).children('a').css({padding: mmm + 'px 12px'}); fonctionne (plus haut dans mon code.

Pour l'environnement, voici la fonction :

Code : Tout sélectionner

function reactualiser_fenetre (objet) { var largeur = $(window).width() + window.scrollX*2; var hauteur = $(window).height() + window.scrollY*2; var contact_largeur = objet.width(); var contact_hauteur = objet.height(); objet.css({position:'absolute',left: (largeur/2 - contact_largeur/2) + 'px',top: (hauteur/2 - contact_hauteur/2) + 'px','z-index':'1000'}); var hauteur2 = $('body').height(); $('#fond').css({position:'absolute',top:'0px',left:'0px',width: largeur + 'px',height: hauteur2 + 'px',backgroundColor:'#000000'}); return objet; }
Quelqu'un a-t-il une idée ??? Merci :)

Re: Problème IE JS

Posté : 27 mai 2010, 04:19
par Nours312
slt ::

t'as testé :
[javascript]objet.css({position:'absolute',left: ((largeur - contact_largeur)/2) + 'px',top: ((hauteur - contact_hauteur)/2) + 'px','z-index':'1000'});
$('#fond').css({position:'absolute',top:'0px',left:'0px',width: largeur + 'px',height: hauteur2 + 'px',backgroundColor:'#000000'}); [/javascript]

sinon, tu peux aussi mettre un try :
[javascript]function reactualiser_fenetre (objet) {

try{
var largeur = $(window).width() + window.scrollX*2;
var hauteur = $(window).height() + window.scrollY*2;
var contact_largeur = objet.width();
var contact_hauteur = objet.height();
objet.css({position:'absolute',left: (largeur/2 - contact_largeur/2) + 'px',top: (hauteur/2 - contact_hauteur/2) + 'px','z-index':'1000'});
var hauteur2 = $('body').height();
$('#fond').css({position:'absolute',top:'0px',left:'0px',width: largeur + 'px',height: hauteur2 + 'px',backgroundColor:'#000000'});
} catch(e){alert(e);}
return objet;
}[/javascript]

@+

Re: Problème IE JS

Posté : 27 mai 2010, 12:48
par devlop78
Le try je l'utilise des fois mais là c'est très important qu'il y arrive. C'est une fenêtre et elle se place au milieu de la page. Alors, si seulement elle ne se mettait pas pile poil au milieu ... mais là non ... ! C'est pas la première fois que j'ai des problèmes avec IE sur des animate() mais là je vois pas pourquoi le deuxième ne fonctionne pas (le premier pourrait s'expliquer par les divisions etc). C'est très embêtant d'autant que le résultat est tout à fait ce que je cherchais ... !!!

Mon code entier :

Code : Tout sélectionner

function reactualiser_fenetre (objet) { var largeur = $(window).width() + window.scrollX*2; var hauteur = $(window).height() + window.scrollY*2; var contact_largeur = objet.width(); var contact_hauteur = objet.height(); objet.css({position:'absolute',left: (largeur/2 - contact_largeur/2) + 'px',top: (hauteur/2 - contact_hauteur/2) + 'px','z-index':'1000'}); var hauteur2 = $('body').height(); $('#fond').css({position:'absolute',top:'0px',left:'0px',width: largeur + 'px',height: hauteur2 + 'px',backgroundColor:'#000000'}); return objet; } function fenetre (objet) { objet.css({opacity:'0'}); if ($('#fond').is('div') == false) $(objet).before('<div id="fond" style="padding:0px;margin:0px;"></div>'); $('#fond').css({opacity:'0'}); reactualiser_fenetre (objet); objet.animate({opacity:'1'},2000); $('#fond').animate({opacity:'0.8'},2000); $(window).resize(function() { reactualiser_fenetre (objet);}); $(window).scroll(function() { reactualiser_fenetre (objet);}); $(window).keydown( function(event) { if (event.keyCode == '27') { $('#fond').remove(); objet.remove(); $(window).unbind('resize'); $(window).unbind('scroll'); $(window).unbind('keydown'); } }); return objet; } // ON CREE L'EVENEMENT DU FORMULAIRE DE CONTACT $('#modal_c').click(function() { $('body').append('<div id="contactme" style="padding:0px;margin:0px;width:400px;height:373px;background-image:url(inc/template/images/contact.png);background-repeat:no-repeat;overflow:hidden;"><div style="text-align:center;"><p><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />En Construction</p></div></div>'); fenetre($('#contactme')); return false; });

Re: Problème IE JS

Posté : 27 mai 2010, 14:53
par devlop78
Le problème vient de là :

var largeur = $(window).width() + window.scrollX*2;
var hauteur = $(window).height() + window.scrollY*2;

C'est un problème de typage. Il me renvoie NaN et en fait $(window).width() me renvoie une valeur. parseInt ne fonctionne pas là mais j'y travaille.

Re: Problème IE JS

Posté : 27 mai 2010, 15:01
par devlop78
var scrollXX = window.scrollX || document.body.parentNode.scrollLeft;
var scrollYY = window.scrollY || document.body.parentNode.scrollTop;
var largeur = $(window).width() + scrollXX*2;
var hauteur = $(window).height() + scrollYY*2;


est la solution ... Encore merci IE ...