Domanda

Sto usando jQuery 1.3.2.

Ho problemi a ottenere una corretta "altezza" in Internet Explorer 6. I valori di altezza sono corretti in tutti gli altri browser.

Sto anche usando plugin wresize jQuery .

Ogni volta che si carica il browser, sparo un metodo che ridimensiona div, iframe in base alle dimensioni del browser. (C'è una buona ragione per questo.)

Il valore restituito di $ ('body'). height (), in IE 6, sembra aggiungere 10 pixel dopo ogni ridimensionamento del browser.

Qualcun altro ha trovato qualcosa del genere?

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"));

Questo codice serve per impostare l'altezza di una griglia DevExpress nel suo contenitore padre. Ignora il fatto che il codice potrebbe essere migliore. :)

Esiste qualcosa di diverso da " body " che potrei usare per farmi una taglia corretta? Ho provato l'oggetto window ($ (window) .height ()), ma questo non sembra aiutare molto.

Ogni pensiero è apprezzato!

È stato utile?

Soluzione

È più probabile che il problema riscontrato sia una differenza di rendering CSS. A causa di problemi di galleggiamento, riempimento e differenze di rendering dei margini tra i browser.

prova a ottenere $ (" body "). innerHeight () e $ (" body "). outerHeight () e confrontali in diversi browser, otterrai alcuni risultati comuni. Nel peggiore dei casi potresti dover eseguire alcuni casi if

Altri suggerimenti

Certo, ecco un paio di idee:

Con IE ed esp. più vecchio IE, mi piace aggiungere un'istruzione setTimeout di 1-10ms attorno alle mie funzioni di rendering dell'altezza - dà alla dom e IE la possibilità di "rilassare"

Inoltre, assicurati che le tue cose siano visibili sulla pagina - per questo, potresti dover buttare le cose fuori dallo schermo temporaneamente usando la posizione assoluta, e poi rivelarle di nuovo sullo schermo.

Un'altra cosa è che l'altezza () a volte è traballante. Prova .css ('height') per recuperare le altezze [è anche più veloce] e rimuovere il 'px' per ciò che è a volte una misurazione più vera.

o usa un plug in dimensioni per jQuery che ti dà molto di più su cui lavorare e è cross browser.

Uso questo plugin per tracciare linee da trascinabili a trascinabili come mostro qui

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

iframeH = $('body').height(); //then try this
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top