大家早上好 :) 我这里有一个问题,我的脖子已经痛了 2 天了。我正在使用 bxSlider 让图像在页面上滑动,并且在 onAfterSlide 回调中调用我自己的函数。除了一件事,一切都很好。当我在幻灯片之间快速切换时,我的函数被调用了 2-3 次(我在页面上有 3 张图像),这不好,因为它返回了意外的结果。我不能使用最新版本的 bxSlider,因为标记已更改。我认为会发生这种情况,因为调用 onAfterSlide 回调时动画仍未完成。这就是我调用 bxSlider 的方式:
$('#slider_bx').bxSlider({
mode: 'fade',
speed: 1000,
pause: 9000,
auto: true,
autoControls: false,
prevText: '',
nextText: '',
autoHover: true,
captions: false,
pager: true,
onBeforeSlide: function () {
if ($('.slide_in').length) {
$('.slide_in').hide();
}
},
onAfterSlide: function () {
if ($('.slide_in').length && $('.slide_in').is(':hidden')) {
doCrazyStuff();
}
}
});
这是我的功能:
function doCrazyStuff() {
var $this = $('.slide_in');
if ($this.length > 0) {
setTimeout(function () {
$this.show();
$this.rotate({
duration: 2000,
angle: 90,
animateTo: -20
});
}, 3000);
}
}
任何帮助表示赞赏。谢谢。
编辑:
我尝试添加.stop()
,但没有帮助。
$this.show().stop();
$this.stop().show();
$this.stop().rotate({
duration: 2000,
angle: 90,
animateTo: -20
});
$this.rotate({
duration: 2000,
angle: 90,
animateTo: -20
}).stop(); // throws an error