IE8 Crash na posição de fundo getStyle
-
05-07-2019 - |
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?
Solução
Obrigado pela ajuda de todos. Este é realmente um bug e funciona apenas no cenário a seguir.
- CSS deve ser carregado em uma folha de estilo externa
- 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.