2012-07-20 64 views
5

我实现了在这里Twitter的引导的传送带jQuery插件: http://zarin.me/circlefive/dashboard.html(查看回复选项卡)jQuery的传送带卡住(Twitter的引导)

转盘通常的功能,但偶尔卡住。当您与其他选项卡进行交互并使用响应选项卡时,会发生这种情况。我认为它与标签有关..

有谁知道为什么传送带卡住了?

谢谢!

+3

相关:[问题1887](https://github.com/twitter/bootstrap/issues/1887),[问题2196](https://github.com/twitter/bootstrap/issues/2196),[问题:如何结合标签和旋转木马](http://stackoverflow.com/questions/12327796/how-to-combine-tabs-and-carousel-in- twitter-bootstrap/12332045) – 2012-09-10 21:18:43

回答

0

如果您检查镀铬物中传送带的行为,那么当您更改标签时,如果传送带仍然在运行,则可以传送带。

而且由于传送带不在活动选项卡中,display: none;应用于传送带的父区域。这可能是你的问题的原因。 (你最终像截图一样)

我认为可以通过触发.carousel('pause')修复最后一个标签上的3个第一个标签和.carousel('cycle'),然后显示与该标签相关的内容。

carousel stuck

3

问题是沿着什么@Francesco Frassinelli在评论中指出的线,即当转盘使用CSS3过渡(基本上任何浏览器,但IE),如果一个旋转木马被隐藏时,转换结束后,事件永远不会被触发。这将导致转盘在滑动状态中暂停,并将其所有功能短路。

Issue #1887@fat扔在他的建议下,以防止它被陷在首位:

“你需要暂停幻灯片播放之前恢复它/切换显示后“。

我还建议在Issue #3351在模式使用旋转时的解决方法,它可以很容易地适应你的使用情况:

$('a[href="#responses-1"]').on('shown', function() { 
    var $carousel = $('.carousel'); 

    if ($carousel.data('carousel') && $carousel.data('carousel').sliding) { 
     $carousel.find('.active').trigger($.support.transition.end); 
    } 
}); 

这基本上只是解锁转盘当它成为是否可见它恰好被暂停。

由于在许多不同的情况下会出现这个可怜的行为,我取得了Issue #3351建议作为一个潜在的永久性解决方案,它可以直接集成到引导-carousel.js插件代码的可行性。如果有人认为这是一个好主意,或者对于如何实现它有其他想法,那么这个问题仍然是开放的,所以欢迎反馈。