Pergunta

Encontrei um bug estranho no Internet Explorer 8. Talvez alguém possa me ajudar a se movimentar.

Quando tento pegar a posição de segundo plano de um elemento, usando background-position-x Todas as versões do Internet Explorer trabalham como exceto, exceto IE8 que trava.

Quando eu corro el.getStyle('background-position') Todos os navegadores me dão os valores corretos, exceto do IE (6, 7 e 8) que retornam undefined.

Eu, portanto, uso el.getStyle('background-position-x') Para todas as versões do IE.

O IE8, no entanto, trava o código acima.

Alguém teve problemas semelhantes?

Foi útil?

Solução

Obrigado pela ajuda de todos. Este é realmente um bug e funciona apenas no cenário a seguir.

  1. CSS deve ser carregado em uma folha de estilo externa
  2. elemento não tem estilo embutido

A maneira de consertá -lo, até difícil sujo, é para Adicione o estilo em linha para o elemento. Faz o IE8 feliz e todos os outros navegadores funcionam.

Eu não testei, mas de acordo para este bilhete, FF2 também sofre do mesmo comportamento.

Notas laterais:
@Marcgg - eu iria fazer o queda de sua resposta, pois ela realmente não é útil (e obrigada a iniciar uma guerra de chama), mas, toda a verdade disse, o jQuery não manifesta esse problema. Mesmo que, como você provavelmente já soube, não é uma opção! ;)

@Fabien - IE suporta background-position-x e não tem apoio para background-position A construção aprovada pelo W3C.

Outras dicas

Por que não usar Função CSS do jQuery que funciona bem -transversal?

Tente usar:

el.getStyle('backgroundPositionX')

e

el.getStyle('backgroundPositionX')

Sim, tópico mais antigo, mas imaginei que eu postaria outra solução que esbarrei em @ Mootools Lighthouse ....

if (Browser.Engine.trident){
    var xy = el.getStyle('background-position-x')+" "+el.getStyle('background-position-y');
} else {
    var xy = el.getStyle("backgroundPosition");
}

Funciona bem para mim até agora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top