Javascript 使用简单的';设置超时';功能性?

Javascript 使用简单的';设置超时';功能性?,javascript,jquery,jquery-animate,carousel,Javascript,Jquery,Jquery Animate,Carousel,我已经建立了一个基本的内容滑块,根据我从网上得到的教程 在本例中,幻灯片使用setTimeout参数按一定的时间间隔滚动,但还具有导航功能(当然),允许您直接转到所选幻灯片 选择幻灯片时,以及鼠标悬停时,幻灯片滚动而不暂停超时 控制滚动的键javaScript/jQuery代码基本上是(共7张幻灯片): ((省略了其他javaScript代码,因为我非常确定关键是这个函数,但如果需要的话,我当然可以使用前兆代码更新我的问题。) 游戏的最后一步是a)每当用户选择新幻灯片时,重置超时时间,b)当鼠标

我已经建立了一个基本的内容滑块,根据我从网上得到的教程

在本例中,幻灯片使用
setTimeout
参数按一定的时间间隔滚动,但还具有导航功能(当然),允许您直接转到所选幻灯片

选择幻灯片时,以及鼠标悬停时,幻灯片滚动而不暂停
超时

控制滚动的javaScript/jQuery代码基本上是(共7张幻灯片):

((省略了其他javaScript代码,因为我非常确定关键是这个函数,但如果需要的话,我当然可以使用前兆代码更新我的问题。)

游戏的最后一步是a)每当用户选择新幻灯片时,重置
超时时间
b)当鼠标滚动到幻灯片内容上时,暂停
超时时间

我认为代码应该与
setTimeout
一起插入,以及一些
if
语句或其他内容。有人能帮我设计出这套解决方案吗?a)和b)

现场原型和无耻插头:


提前谢谢你的提示

添加暂停检查和保存计时器引用的变量

var currentSlide = 0,
    paused = 0,
    timer;

function slideScroll () {
    if (paused) {/* action if paused or leave blank*/}
    else if (currentSlide === 7) selectSlide(1);
    else selectSlide(currentSlide + 1);
    timer = setTimeout(slideScroll, 4000);
}
然后在选择幻灯片中单击

clearTimeout(timer);
timer = setTimeout(slideScroll, 4000);
remain = 4000;
然后在鼠标上

paused = 1;
还有老鼠

pause = 0;

或者,使用一个较短的超时,它在大多数调用时几乎什么也不做

var currentSlide = 0,
    paused = 0,
    remain = 4000;

function slideScroll () {
    if (!paused) {
        if (remain > 0) remain -= 200;
        else {
            remain = 4000;
            if (currentSlide === 7) selectSlide(1);
            else selectSlide(currentSlide + 1);
        }
    }
    setTimeout(slideScroll, 200);
}
然后在选择幻灯片中单击

clearTimeout(timer);
timer = setTimeout(slideScroll, 4000);
remain = 4000;

与前面的mouseover和mouseout相同

添加暂停检查和保存计时器引用的变量

var currentSlide = 0,
    paused = 0,
    timer;

function slideScroll () {
    if (paused) {/* action if paused or leave blank*/}
    else if (currentSlide === 7) selectSlide(1);
    else selectSlide(currentSlide + 1);
    timer = setTimeout(slideScroll, 4000);
}
pause = 0;
然后在选择幻灯片中单击

clearTimeout(timer);
timer = setTimeout(slideScroll, 4000);
remain = 4000;
然后在鼠标上

paused = 1;
还有老鼠

pause = 0;

或者,使用一个较短的超时,它在大多数调用时几乎什么也不做

var currentSlide = 0,
    paused = 0,
    remain = 4000;

function slideScroll () {
    if (!paused) {
        if (remain > 0) remain -= 200;
        else {
            remain = 4000;
            if (currentSlide === 7) selectSlide(1);
            else selectSlide(currentSlide + 1);
        }
    }
    setTimeout(slideScroll, 200);
}
然后在选择幻灯片中单击

clearTimeout(timer);
timer = setTimeout(slideScroll, 4000);
remain = 4000;
与之前的mouseover和mouseout相同

这称为“旋转木马”。现场观看代码和演示会很棒。这被称为“旋转木马”。现场观看代码和演示会很好。
pause = 0;