アニメーションを適用しようとしているボタンに問題があります。
私が作成しようとしている効果は、白い境界線と透明な背景を持つボタンが、左から右にホバーすると白い背景色で塗りつぶされ、ユーザーのマウスが消えると左から右に再びクリアされることです。font-color も読みやすい色に変わります。
これを実現するために、2 つの a が重なっている div があります。なぜ2つの要素?したがって、ユーザーは一番上/表示されている方をクリックできます。
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 ここ
どんな助けでも大歓迎です!