Problemas que ver:
Configuración de una altura o anchura en una línea <a>
o <span>
etiqueta en su CSS o en su animación. Lea this article para conocer los problemas al tratar de establecer la altura o el ancho en las etiquetas en línea. Esto se aplica tanto a su CSS como a su animación. Si quieres animar el ancho, creo que vas a necesitar hacerlo en un elemento de bloque.
Me parece que la animación puede confundirse por la alternancia de ancho y opacidad. Tal vez sea mejor que especifiques ambas devoluciones de llamada para suspender y especificar los puntos de inicio y detención de la animación de forma más directa en lugar de dejar el método de alternar para tener que averiguar cuáles deberían ser los puntos de inicio y de detención.
Por ejemplo, sin rehacer el HTML para que sea un bloque de elementos (que creo que es necesario para animar el ancho de manera confiable), aquí hay una animación suave solo en la opacidad. Establecí el punto de partida en el CSS para la opacidad inicial deseada y dejé de usar la opción alternar para configurar la animación y la estoy configurando de forma explícita. No estoy seguro de que esto sea necesario, pero asegura que elimina la ambigüedad de lo que al alternar va a tratar de adivinar lo que desea: http://jsfiddle.net/jfriend00/r2cdn/ (animación de opacidad solo en este jsfiddle, ambas animaciones incluidas en jsfiddle a continuación).
jQuery(document).ready(function() {
// Animate the single page nav
jQuery("a#post-nav-next").hover(function(){
jQuery("a#post-nav-next span").stop(true, true).animate({opacity: "1.0"});
}, function() {
jQuery("a#post-nav-next span").stop(true, true).animate({opacity: "0"});
}
);
});
Para el cambio de ancho, ¿en qué dos estados esperaba alternar? Eso no estaba claro para mí como ser humano y probablemente no sea claro para jQuery.toggle() tampoco. Si lo que estás tratando de hacer es animar el relleno correcto, entonces tal vez deberías hacerlo directamente.
Si pongo una animación directa para el relleno y cambio el valor inicial en el CSS, comienza a animarse sin problemas. No estoy 100% seguro de saber qué animación estabas buscando, pero esta debería ser la dirección que puedes seguir: http://jsfiddle.net/jfriend00/PE4qQ/.
jQuery(document).ready(function() {
// Animate the single page nav
jQuery("a#post-nav-next").hover(function(){
jQuery("a#post-nav-next span").stop(true, true).animate({"opacity": "1.0", "padding-right": "100px"});
}, function() {
jQuery("a#post-nav-next span").stop(true, true).animate({"opacity": "0", "padding-right": "0px"});
}
);
});
Seguimiento. Parece que está siendo causado por el reflujo del texto a medida que se cierra el tramo. ¿Cómo arreglar esto? ¿Quizás esconderlo de cerca? – Niels
Hmm ... todavía no funciona [link] (http://jsfiddle.net/9F5DK/6/) con desbordamiento: – Niels
ocultos supongo que es porque está animando el texto y no el contenedor circundante. pero también estoy interesado en la respuesta. esperaré a que alguien más inteligente que yo responda. – kasdega