我正在製作一個div的孩子的動畫,孩子們在懸停時一次製作一個動畫,而另一個正在停止,有時也被刪除。 我想要的是當所有動畫停止/停止/或不再移動時的回調 - 換句話說。jquery隊列給父母而不是特定的孩子?
...我試圖讓這樣的事情,直接排隊的家長,但是這似乎並沒有在所有的工作:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
$('div.start').click(function(){
$('<img style="display:block;display:none;" src="http://www.laserpros.com/images/site/HP_Circle_Logo_Vector1_small.jpg">')
.appendTo($(this))
.animate({opacity:0},0)
.css('display','block')
.animate({opacity:1},2000,function(){});
$(this).queue(function(){
$('#gotcha').html(1+parseInt($('#gotcha').html()));
});
});
});
</script>
<style>
div.start{
background-color:#0057D8;
width:100px;
float:left;
}
div#gotcha{
float:left;
width:100px;
}
</style>
</head>
<body>
<div></div>
<div class="start">Start</div>
<div id="gotcha">
0
</div>
</body>
</html>
的數量suppossed換一次動畫完成,但這絕不會發生。 有沒有其他方法可以做?或者也許以某種方式獲得fx的剩餘時間,並且使用setTimeout?
任何意見表示讚賞。
編輯:我爲什麼要這樣做?
實際上,我有一系列的小拇指圖像,並將它們懸停後,他們在dom中創建了更大的對應物,並將其附加到展示div上。 附加的圖像相互疊加,以實現平滑的過渡效果,最新的圖像加載正在動畫,同時也阻止其他兄弟從動畫。 取消停留時,我想要在所有動畫停止放大以恢復到原始圖片時創建超時。 我嘗試使用.children('img:last')。queue(function(){})將縮放效果排隊到最新的子節點,但是因爲它們是異步載入load事件,它們的順序不清晰,而且一旦動畫完成,並且如果我們不快速取消快速移動,則需要不透明度1,並從父項中移除其他同胞。所以我們很難猜測我們應該把隊列綁定到什麼孩子身上。
編輯2:現在我修改我的代碼一點點,我只在img連接到div一旦其加載,所以最後加載始終可用與IMG:最後的選擇,但直覺告訴我,這個也沒有被保護以防止錯誤。
現在,我想最好是做這樣的事情:
- 獲取isAnimated所有兒童。
- 如果動畫 - 獲取持續時間和設置超時事件。
- 如果否 - 直接執行事件。
雖然問題是我不知道如何獲得動畫的剩餘時間。如果你就此提出一些建議,這將大有幫助。謝謝
是一個笑話,mkk? – Anonymous