Проблемы, которые я вижу:
Установка высоты или ширины встроенного тега <a>
или <span>
в вашем CSS или в вашей анимации. Прочтите эту статью , чтобы узнать о проблемах с попыткой установить высоту или ширину встроенных тегов Это относится как к вашему CSS, так и к вашей анимации. Если вы хотите анимировать ширину, я думаю, вам нужно сделать это на элементе блока.
Мне кажется, что анимация может сбить с толку переключателем ширины и непрозрачности. Возможно, вам было бы лучше указать оба обратных вызова для наведения и указать точки начала и окончания анимации более напрямую, чем оставлять метод переключения на необходимость выяснения, какими должны быть точки начала и окончания.
Например, без повторного преобразования HTML в блочные элементы (что, я думаю, необходимо для надежной анимации ширины), здесь показана плавная анимация только с непрозрачностью. Я установил начальную точку в CSS на желаемую начальную непрозрачность, и я перестал использовать переключатель, чтобы установить анимацию, и я устанавливаю ее явно. Я не уверен, что это требуется, но это убирает неоднозначность из того, что переключатель попытается угадать, что вы хотите: http://jsfiddle.net/jfriend00/r2cdn/ (анимация непрозрачности только в этом jsfiddle, обе анимации включены в jsfiddle ниже).
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"});
}
);
});
Для переключения ширины, с какими двумя состояниями вы надеялись переключиться? Это было непонятно мне как человеку и, вероятно, не понятно и jQuery.toggle (). Если то, что вы пытаетесь сделать, это анимировать правильный отступ, то, возможно, вам следует просто сделать это напрямую.
Если я добавлю прямую анимацию для отступа и изменим начальное значение в CSS, оно начнет плавно анимироваться. Я не уверен на 100%, что знаю, какую анимацию вы искали, но это должно быть направление, в котором вы можете двигаться: 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"});
}
);
});