【发布时间】:2017-05-21 06:57:29
【问题描述】:
我构建了一个 jquery 轮播。但是当我快速向右滑动或向左滑动时会干扰并快速工作。我怎样才能解决这个问题? Here is uploaded project
我有设置变量,设置间隔是设置间隔的时间,项目是我的图像,幻灯片是要显示的活动图像,时钟是我的设置间隔函数。 当幻灯片更改时,我清除时钟变量,然后将其设置为超时,以便用户可以查看幻灯片并且幻灯片不会更改。
var settings = $.extend({
interval: 5000,
element: this.selector,
items: ['images/1.jpg','images/2.jpg','images/3.jpg'],
slide: 0,
clock: 0,
}, options);
// Touch
$(settings.element + ' .primary img').on("swiperight", function () {
nextSlide();
pauseInterval();
setTimeout(function () {
if (!settings.clock)
settings.clock = setInterval(nextSlide, settings.interval)
}, 4000);
}).on("swipeleft", function () {
prevSlide();
pauseInterval();
setTimeout(function () {
if (!settings.clock)
settings.clock = setInterval(prevSlide, settings.interval)
}, 4000);
});
// Next Slide
function nextSlide() {
settings.slide++;
if (settings.slide >= settings.items.length) settings.slide = 0;
$(settings.element + ' .primary img').attr('src', settings.items[settings.slide]).attr('data-slide', settings.slide);
activeThumbnail()
}
// Prev Slide
function prevSlide() {
settings.slide--;
if (settings.slide < 0) settings.slide = settings.items.length;
$(settings.element + ' .primary img').attr('src', settings.items[settings.slide]).attr('data-slide', settings.slide);
activeThumbnail()
}
//Pause Interval
function pauseInterval() {
clearInterval(settings.clock);
settings.clock = 0;
}
【问题讨论】:
-
我不明白...用户滑动,所以您暂停间隔,然后您希望间隔在 4 秒后重新开始?什么不工作? 4秒后重新启动间隔或问题是间隔不暂停?原因如果问题是“间隔不暂停”不是间隔......问题是 setTimeout 正在累积
-
使用 clearTimeout
标签: javascript jquery