2012-12-07 26 views
0

我想要達到的第一個/最後一個div在一個更大的div內「停止」動畫。jQuery停止在最後一個div的動畫

我的設置:首先我計算視圖開始在一個特定的div與類'關閉'然後我用導航按鈕左/右動畫#all_fixtures。這一切工作正常!

我需要的是爲達到#all_fixtures中的第一個/最後.fixture包裝div時動畫停止。

的jQuery

// Find first div with the class '.closed' and start view there 
$(function() { 
$('#all_fixtures').css({marginLeft: -$('.closed').last().offset().left}); 
}); 

// Animate div left/right   
$('.scores_prev').click(function() { 
$('#all_fixtures').animate({ 'left': '+=400px' }, 300); 
}); 

$('.scores_next').click(function() { 
$('#all_fixtures').animate({ 'left': '-=400px' }, 300); 
}); 

HTML

<div id="all_fixtures"> 
     <div class="fixture closed"> 4 </div> 
     <div class="fixture closed"> 3 </div> 
     <div class="fixture closed"> 2 </div> 
     <div class="fixture closed"> 1 </div> <!-- start view here --> 
     <div class="fixture"> 1 </div> 
     <div class="fixture"> 2 </div> 
    </div> 
    <a class="scores_prev"> PREV </a> 
    <a class="scores_next"> NEXT </a> 

注:

  • all_fixtures是10000px

  • .fixture是一些200像素右浮動寬度&(意味着#all_fixtures會有空白的左邊)

我試圖沿着這些線路的東西,但我無法得到它工作:https://stackoverflow.com/a/10410528/1864622

///

回答

0

你可以得到第一個和最後一個div的#all_fixtures包裝像這裏面:

$("#all_fixtures div.fixture:first"); 
$("#all_fixtures div.fixture:last"); 

一旦你獲得div,你可以通過調用.stop()來停止動畫。當在元素上調用.stop()時,當前正在運行的動畫(如果有)立即停止。例如,如果在調用.stop()時使用.slideUp()隱藏某個元素,則該元素現在仍將顯示,但將是其之前高度的一小部分。回調函數不被調用。

+0

嘗試以各種可能的方式實現您的代碼,但沒有運氣...會嘗試更多。 –

+0

我可以試試看。你能把代碼放在http://jsfiddle.net/上嗎? –

+0

Thanks @ palash-mondal //這是我們的服務器上的一個文件:http://borozani.com/jquery/test-slide.html //出於某種原因,無法讓jsfiddle在瀏覽器/ /請注意幻燈片在最後'.closed'div的啓動情況(所有內容都是正確的) –