我有一个带有自动播放设置和导航箭头的简单 Owl 旋转木马,使用以下选项定义:
var options = {
mainBanner: {
animateOut: 'fadeOut',
autoplay: true,
autoplayHoverPause: false,
autoplaySpeed: 1200,
dots: false,
lazyLoad: true,
loop: true,
mouseDrag: false,
pullDrag: false,
touchDrag: false,
nav: true,
navText: [
"‹",
"›"
]
},
…
当用户单击导航箭头时,我希望它停止自动播放。为此,我添加了以下功能:
setTimeout(function () {
$('.owl-nav > div').on('click', function () {
$('.owl-carousel').trigger('stop.owl.autoplay');
})
}, 500);
(我添加了超时,因为加载此函数时 .owl-nav 元素尚未呈现。它不是很优雅,但它达到了目的)。
问题是当我单击导航箭头时,自动播放停止。但是,如果我再次(一次又一次)单击它们,滑块将继续自动播放。这不是预期的行为 - 我只是希望它从第一次点击时停止。
非常感谢有关如何解决此问题的任何提示。谢谢!
原文由 Diana 发布,翻译遵循 CC BY-SA 4.0 许可协议
从我 在这里 和 这里 收集到的信息来看,这似乎是一个计时器问题:触发
stop.owl.autoplay
会破坏计时器,但不会更改自动播放设置,因此会再次设置计时器。你必须在设置中关闭(如果你想重新激活则重新打开)。你可以试试:
编辑:第二个解决方案似乎有效: https://jsfiddle.net/b6x6vc8q/3/