這個真的讓我感到癢癢;)嘗試了幾件事情,但是 - 正如已經告訴過的 - 插件不希望更快地獲得密切的動畫調用,那麼開場動畫將運行。
所以最後我建立你以下。 - 在文檔準備就緒時打開風扇 - 在關閉它之前爲mouseleave創建超時,等待打開動畫的持續時間 - 當鼠標移開元素時,您將有400ms的延遲,但即使在您去過快...
$(document).ready(function() {
if ($("#baraja-el").length) {
var $el = $('#baraja-el');
baraja = $el.baraja();
}
//initial open
baraja.fan({
speed: 400,
easing: 'ease-in-out',
range: 80,
direction: 'right',
origin: {
x: 0,
y: 0
},
center: true
});
$('.baraja-container').addClass('open');
// navigation
$('#baraja-prev').on('click', function (event) {
baraja.previous();
$('.baraja-container li').each(function() {
if ($(this).css('z-index') === "1000") {
$(this).addClass('visited');
}
});
});
$('#baraja-next').on('click', function (event) {
baraja.next();
$('.baraja-container li').each(function() {
if ($(this).css('z-index') === "1010") {
$(this).addClass('visited');
}
});
});
$('.baraja-container').hover(function (event) {
if(!$(this).hasClass('open'))
{
$(this).addClass('open');
baraja.fan({
speed: 400,
easing: 'ease-in-out',
range: 80,
direction: 'right',
origin: {
x: 0,
y: 0
},
center: true
});
}
}, function (event) {
curBarCon = $(this);
setTimeout(function(){
curBarCon.removeClass('open');
baraja.close();
}, 400);
});
$('.baraja-container li').click(function() {
$(this).addClass('visited');
});
});
,因爲我在你codepen撥弄,你應該在這裏工作的版本:http://codepen.io/moy/pen/OPyGgw 但是......它真的沒有完美的解決方案。我建議獲得另一個插件或返工baraja來獲得回調函數,這將測試動畫是否正在運行並在需要時將它們出隊。
rgrds, ē
你試圖將鼠標移出處理程序添加到您的懸停功能? http://api.jquery.com/hover/ – errand 2014-12-04 10:44:53
在baraja插件文檔中找不到任何東西......似乎他們並不期望獲得一個用例,在傳播動畫完成之前關閉的動畫被觸發。 .stop也不起作用。 – errand 2014-12-04 10:57:53
謝謝你看看差事 - 正是我遇到的問題:s – user1406440 2014-12-04 11:16:41