que esperaba originalmente que algo así ...
$("selector")
.css({borderRadius: 10});
.animate({borderRadius: 30}, 900);
... funcionaría. Pero, estaba equivocado: Webkit le permite establecer el valor de las cuatro esquinas a través de borderRadius
, pero no le permitirá leerlo, por lo que con el código anterior, la animación siempre comenzará en 0 en lugar de 10. IE tiene el mismo problema Firefox te permite leerlo, así que todo funciona como se esperaba allí.
Bien ... border-radius tiene una especie de historial de diferencias de implementación.
Afortunadamente, hay una solución alternativa: sólo tiene que especificar cada radio de esquina de forma individual:
$("selector")
.css({
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
borderBottomLeftRadius: 10,
borderBottomRightRadius: 10 })
.animate({
borderTopLeftRadius: 30,
borderTopRightRadius: 30,
borderBottomLeftRadius: 30,
borderBottomRightRadius: 30}, 900);
Tenga en cuenta que si desea mantener la compatibilidad con navegadores antiguos, se puede ir sin cuartel y utilizar el viejo browser- nombres prefijados:
$("selector")
.css({
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
borderBottomLeftRadius: 10,
borderBottomRightRadius: 10,
WebkitBorderTopLeftRadius: 10,
WebkitBorderTopRightRadius: 10,
WebkitBorderBottomLeftRadius: 10,
WebkitBorderBottomRightRadius: 10,
MozBorderRadius: 10
})
.animate({
borderTopLeftRadius: 30,
borderTopRightRadius: 30,
borderBottomLeftRadius: 30,
borderBottomRightRadius: 30,
WebkitBorderTopLeftRadius: 30,
WebkitBorderTopRightRadius: 30,
WebkitBorderBottomLeftRadius: 30,
WebkitBorderBottomRightRadius: 30,
MozBorderRadius: 30
}, 900);
Esto comienza a ponerse bastante loco; Lo evitaría si es posible.
Bueno, algo así. Hasta ahora, si hay un radio establecido en la hoja de estilos, las esquinas se ajustarán a escuadra, luego animar a 30 (para usar su ejemplo) desde allí. Parece querer ir de 0 a cualquier valor que se le dé. Obtengo el mismo resultado en Safari y Firefox 3.5 beta. – user113716
Corrección: Parece que funciona correctamente en Firefox. Safari solo quiere incrementar. – user113716
Parece que en cualquier dirección que vaya, Safari siempre comienza por ajustar a 0. ¿Alguna idea alternativa? Gracias. – user113716