2012-12-07 27 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的启动情况(所有内容都是正确的) –