Pregunta

He encontrado un error extraño en Internet Explorer 8. Tal vez alguien pueda ayudarme a moverme.

Cuando intento capturar la posición de fondo de un elemento, utilizando background-position-x todas las versiones de Internet Explorer funcionan excepto, excepto por IE8 que se bloquea . / p>

Cuando ejecuto el.getStyle ('background-position') , todos los navegadores me dan los valores correctos excepto de IE (6, 7 y 8) que devuelven undefined .

Por lo tanto, uso el.getStyle ('background-position-x') para todas las versiones de IE.

IE8, sin embargo, se bloquea en el código anterior.

¿Alguien tuvo problemas similares?

¿Fue útil?

Solución

Gracias por la ayuda a todos. Esto realmente es un error y solo funciona en el siguiente escenario.

  1. css se debe cargar en una hoja de estilo externa
  2. el elemento no tiene un estilo en línea

La forma de solucionarlo, incluso si está sucia, es agregar un estilo en línea al elemento. Hace feliz a IE8 y todos los demás navegadores funcionan.

No probé pero, según a este ticket , FF2 también sufre el mismo comportamiento.

Notas al margen:
@marcgg - Iba a rechazar tu respuesta, ya que realmente no es útil (y estoy obligado a iniciar una guerra de fuego) pero, a decir verdad, jQuery no manifiesta este problema. Aunque, como probablemente ya sabías, ¡NO es una opción! ;)

@Fabien - IE admite background-position-x y carece de soporte para position-background la construcción aprobada por el W3C.

Otros consejos

¿Por qué no usar función css de jquery que funciona bien como navegador?

Intenta usar:

el.getStyle('backgroundPositionX')

y

<*>

sí, tema más antiguo, pero pensé que publicaría otra solución que encontré en @ 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 bien para mí hasta ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top