Pergunta

Estou usando o jQuery 1.3.2.

Estou tendo problemas para obter uma "altura" correta no Internet Explorer 6. Os valores de altura estão corretos em todos os outros navegadores.

Eu também estou usando plug -in jQuery WRESize.

Cada vez que o navegador carrega, eu disparo um método que redimensiona os divs, iframes com base nas dimensões do navegador. (Há uma boa razão para isso.)

O valor retornado de $ ('corpo'). Hight (), no IE 6, parece adicionar 10 pixels após cada redimensionamento do navegador.

Alguém mais se deparou com algo assim?

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

Este código é para definir a altura de uma grade devExpress em seu contêiner pai. Ignore o fato de que o código pode ser melhor. :)

Existe algo diferente de "corpo" que eu poderia usar para me obter um tamanho correto? Eu tentei o objeto da janela ($ (janela) .Height ()), mas isso não parece ajudar muito.

Qualquer pensamento é apreciado!

Foi útil?

Solução

O problema que você está enfrentando é mais provável de ser uma diferença de renderização do CSS. Devido a problemas flutuantes, preenchimento e diferenças de renderização de margem entre os navegadores.

tente pegar $ ("corpo"). InnerHeight () e $ ("corpo"). ExterHeight () E compare -os em diferentes navegadores, você obterá alguns resultados comuns. Na pior das hipóteses, você pode precisar correr alguns if casos

Outras dicas

Claro, aqui estão algumas idéias:

Com o IE, e esp. IE mais velho, eu gosto de adicionar uma declaração de 1 a 10ms Settimeout em torno das minhas funções de renderização de altura-dá ao DOM e à chance de "relaxar"

Além disso, verifique se você está visível na página - para isso, pode ser necessário tirar as coisas da tela temporariamente usando a posição absoluta e, em seguida, revelá -las na tela novamente.

Outra coisa é que a altura () às vezes é instável. Tente .css ('altura') para recuperar alturas [também é mais rápido] e remova o 'px' para o que é as vezes uma medição mais verdadeira.

ou use um Dimensões plug -in Para o jQuery, que lhe dá muito mais para trabalhar e é o navegador cruzado.

Eu uso este plug -in para desenhar linhas de um arrastável para um droppable como eu mostrar aqui

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

iframeH = $('body').height(); //then try this
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top