У меня возникли проблемы с кнопкой, к которой я пытаюсь применить анимацию.
Эффект, который я пытаюсь создать, заключается в том, что кнопка с белой рамкой и прозрачный фон заполняется белым цветом фона при наведении курсора слева направо и снова очищается слева направо, когда мышь пользователя гаснет. При этом цвет шрифта меняется на читаемый цвет.
Для этого у меня есть div с двумя a, которые расположены друг над другом. Почему два элемента? Таким образом, пользователь может щелкнуть тот, который находится сверху/показан.
HTML:
<div class="block-button"> <a href="#" class="first">Click me</a>
<a href="#" class="second"></a>
CSS
.block-button .first {
z-index: 8;
color: #fff;
}
.block-button .second {
z-index: 7;
background-color: white;
}
jQuery
//Buttons
$("a.second").hide();
$(".block-button").each(function () {
$(this).hover(function (e) {
$(this).find("a.second").show("blind", {
direction: "left",
easing: 'easeOutCubic'
},500, function () {
//Callback
});
}, function (e) {
$(this).find("a.second").hide("blind", {
direction: "right",
easing: 'easeOutCubic'
}, 500, function () {
//Callback
});
});
});
Однако у меня возникают проблемы с обработкой очереди слепой анимации. Обычно я бы решил это с помощью jQuery.stop(), но в данный момент он работает неправильно.
Когда я отключаю остановку, естественно, все анимации складываются, поэтому постоянное зависание / снятие зависания заставит анимацию повторяться снова и снова.
Однако, когда я включаю остановку, когда вы снова вводите элемент, пока он все еще анимируется (вы можете ясно видеть это при использовании высокой продолжительности в функции анимации), последняя анимация не вызывается правильно.
Это довольно сложно объяснить, но я думаю, что эти jFiddles делают это довольно ясным.
Остановка включена: jsFiddle здесь
Стоп отключен: jsFiddle здесь
Любая помощь будет оценена по достоинству!