我在尝试应用动画的按钮时遇到问题。
我试图创建的效果是,带有白色边框和透明背景的按钮在从左到右悬停时填充白色背景颜色,并在用户鼠标熄灭时从左到右再次清除。同时字体颜色也变为可读颜色。
为了实现这一点,我有一个 div,其中有两个 a,它们彼此重叠。为什么有两个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 here
停止禁用:这里的 jsFiddle
任何帮助,将不胜感激!