我在这里实现了 Twitter Bootstrap 的 Carousel jQuery 插件:http: //zarin.me/circlefive/dashboard.html(请参阅响应选项卡)
旋转木马通常可以运行,但偶尔会卡住。当您与其他选项卡交互然后使用响应选项卡时,尤其会发生这种情况。我认为这与标签有关..
有谁知道为什么轮播卡住了?
谢谢!
我在这里实现了 Twitter Bootstrap 的 Carousel jQuery 插件:http: //zarin.me/circlefive/dashboard.html(请参阅响应选项卡)
旋转木马通常可以运行,但偶尔会卡住。当您与其他选项卡交互然后使用响应选项卡时,尤其会发生这种情况。我认为这与标签有关..
有谁知道为什么轮播卡住了?
谢谢!
问题与@Francesco Frassinelli 在评论中指出的内容一致,即当轮播使用 CSS3 过渡(基本上是任何浏览器,除了 IE)时,如果在过渡结束时隐藏了轮播,$.support.transition.end
则永远不会触发事件。这将导致旋转木马在滑动状态下暂停并使其所有功能短路。
在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中提出了一个潜在的永久解决方案的可行性建议,该解决方案可以直接集成到bootstrap-carousel.js插件代码中。如果有人认为这是一个好主意,或者对如何实现它有其他想法,那么这个问题仍然是开放的,所以欢迎反馈。
如果您在 chrome 中检查轮播的行为,您可以在更改选项卡时轮播仍在运行。
并且由于轮播不在活动选项卡中,因此将 adisplay: none;
应用于轮播的父 div。这可能是您的问题的原因。(你最终像截图一样)
我认为可以通过在显示与选项卡相关的内容之前.carousel('pause')
单击第 3 个选项卡和.carousel('cycle')
最后一个选项卡时触发来修复它。