Question

J'utilise jQuery 1.3.2.

Je ne parviens pas à obtenir une "hauteur" correcte. dans Internet Explorer 6. Les valeurs de hauteur sont correctes dans tous les autres navigateurs.

J'utilise également le le plugin wresize jQuery .

Chaque fois que le navigateur se charge, je déclenche une méthode qui redimensionne les div, iframes en fonction des dimensions du navigateur. (Il y a une bonne raison à cela.)

La valeur renvoyée de $ ('body'). height (), dans IE 6, semble ajouter 10 pixels après chaque redimensionnement du navigateur.

Quelqu'un d'autre a-t-il rencontré quelque chose comme ça?

var iframeH = 0, h = 0, groupH = 0, adjust = 0;

var tableH = $("#" + gridId + "_DXHeaderTable").parent().height();
var pagerH = $(".dxgvPagerBottomPanel").height();
var groupHeight = $(".dxgvGroupPanel").height();

if (pagerH == null)
    pagerH = 0;

if (groupHeight != null)
    groupH = groupHeight + pagerH;

iframeH = $('body').height();
h = (iframeH - (tableH + pagerH + groupH));

$('#' + gridId + "Panel").css("height", (h + "px"));
$("#" + gridId + "_DXMainTable").parent().css("height", (h + "px"));

Ce code permet de définir la hauteur d'une grille DevExpress dans son conteneur parent. Ignorer le fait que le code pourrait être meilleur. :)

Existe-t-il autre chose que "corps"? que je pourrais utiliser pour me donner une taille correcte? J'ai essayé l'objet window ($ (window) .height ()), mais cela ne semble pas beaucoup aider.

Toutes les pensées sont appréciées!

Était-ce utile?

La solution

Le problème que vous rencontrez est plus susceptible d’être une différence de rendu CSS. En raison de problèmes de flottement, de bourrage et de différences de rendu de marge entre les navigateurs.

essayez de récupérer $ ("body"). innerHeight () et $ ("body"). outerHeight () et de les comparer dans différents navigateurs, vous obtiendrez des résultats communs. Dans le pire des cas, vous devrez peut-être exécuter des si cas

Autres conseils

Bien sûr, voici quelques idées:

Avec IE et esp. Pour les anciens IE, j'aime bien ajouter une instruction 1-10ms setTimeout autour de mes fonctions de rendu en hauteur - cela donne au dom et à IE une chance de "se détendre"

Assurez-vous également que votre contenu est visible sur la page. Pour ce faire, vous devrez peut-être jeter des éléments de l'écran temporairement à l'aide de la position absolue, puis les afficher à nouveau à l'écran.

Une autre chose est que height () est parfois méchante. Essayez .css ('height') pour récupérer des hauteurs [c'est aussi plus rapide] et supprimez le "px" pour ce qui est parfois une mesure plus vraie.

ou utilisez un plug-in Dimensions pour pour jQuery, qui vous permet de bien plus travailler avec et c'est navigateur croisé.

J'utilise ce plugin afin de tracer des lignes d'un glissable à un largable, comme je le montre ici .

$('body').height(); // call this first

iframeH = $('body').height(); //then try this
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top