Javascript记住间隔

时间:2014-08-22 19:16:48

标签: javascript jquery

我最近发布了幻灯片中使用间隔的问题(Issues with setInterval),并希望远离setInterval可以解决我的所有问题,但事实并非如此。

我遇到下一个幻灯片功能“记住”点击次数(甚至是点击之间的速度)以及每次间隔触发时重复该次数的问题。通常,在用户输入后,该功能应暂停一段时间,然后一次返回一张幻灯片的间隔,而是根据用户点击开始间隔。

例如:用户滑动下一个幻灯片按钮四次,节目移动四个幻灯片,然后暂停,之后它将移动另外四个幻灯片(而不是一个)。

以下是我的javascript(根据相关性删除部分):

$(document).ready(function () {

slidePos = 1;
runInterval = 7000;
setTimeout(AutoScroll, runInterval);

$(".ss-right-arrow").click(function () {
    SlideRight();
    runInterval = false;
    setTimeout(function () {
        runInterval = 7000;
        AutoScroll();
    }, 15000);
});

$(".ss-left-arrow").click(function () {
    SlideLeft();
    runInterval = false;
    setTimeout(function () {
        runInterval = 7000;
        AutoScroll();
    }, 15000);
})
});

function AutoScroll() {
    if (runInterval) {
        SlideRight();
        setTimeout(AutoScroll, runInterval);
    }
}

function SlideRight() {
    slidePos = slidePos + 1;
    if (slidePos <= $(".ss-slide").length) {
        $(".ss-container").css("margin-left", -((slidePos - 1) * $(".ss-slideshow").width()) + "px");
        $(".ss-indicator-arrow").css("left", ($(".ss-indicator-arrow").width() * (slidePos - 1) + "px"));
    }
    else
        Reset();
}

function SlideLeft() {
    slidePos--;
    if (slidePos > 0) {
        $(".ss-container").css("margin-left", -((slidePos - 1) * $(".ss-slideshow").width()) + "px");
        $(".ss-indicator-arrow").css("left", ($(".ss-indicator-arrow").width() * (slidePos - 1) + "px"));
    }
    else {
        slidePos = $(".ss-slide").length;
        $(".ss-container").css("margin-left", -((slidePos - 1) * $(".ss-slideshow").width()) + "px");
        $(".ss-indicator-arrow").css("left", ($(".ss-indicator-arrow").width() * (slidePos - 1) + "px"));
    }
}

我已经尝试了多种间隔方法(例如i ++,++ i,+ = 1等),并尝试将间隔移到函数外部,但都没有产生结果。

所以问题是:

为什么我的功能“记住”用户输入以及如何阻止它?

0 个答案:

没有答案