使用javascript的简单自动滑动器,但设置间隔?

使用javascript的简单自动滑动器,但设置间隔?,javascript,jquery,Javascript,Jquery,我为我的简单滑块写了一些代码,但有些东西出错了 我想重置画布高度 var myVar = setInterval(function(){ myTimer() }, 1000); function myTimer() { img.css({'top':- (height -canvasHeight) }) canvasHeight+=100 var top = img.css('top')

我为我的简单滑块写了一些代码,但有些东西出错了

我想重置画布高度

var myVar = setInterval(function(){ myTimer() }, 1000);
    function myTimer() {

            img.css({'top':- (height -canvasHeight) })  
            canvasHeight+=100
            var top = img.css('top')

            if (top == '0px'){
                myStopFunction()
                img.css({'top':-height})
                canvasHeight = 0
                canvasHeight+=100
                height = new $('img').height() - canvasHeight;
                setInterval(function(){ myTimer() }, 1000);
            } 
    }

function myStopFunction() {
    clearInterval(myVar);
}

您没有将重新启动它的
setInterval
分配给
myVar
变量,因此下次尝试清除它时,它仍然使用原始调用中的间隔ID。这会导致运行多个时间间隔,从而导致函数的多个相互竞争的调用

此外,还有一堆隐式全局变量,因为缺少逗号分隔符

var img=$('img'),
时间=2000,
top=img.css('top'),
画布高度=100,
高度=$('img')。高度()-画布高度;
img.css({
‘顶部’:-高度
})
var myVar=setInterval(myTimer,1000);
函数myTimer(){
css({'top':-(height-canvashheight)})
画布高度+=100
var top=img.css('top')
如果(顶部=='0px'){
myStopFunction()
css({'top':-height})
画布高度=0
画布高度+=100
高度=新的$('img')。高度()-画布高度;
myVar=设置间隔(myTimer,1000);
}
}
函数myStopFunction(){
净距(myVar);
}
.box{
位置:相对位置;
宽度:320px;
高度:100px;
保证金:0自动;
溢出:隐藏;
}
.现场{
身高:100%;
宽度:100%;
浮动:左;
背景色:#996711;
}
.场景元素{
位置:相对位置;
左:0;
宽度:100%;
身高:100%;
}
.场景元素img{
位置:绝对位置;
-webkit过渡:所有易用.8s;
-moz过渡:所有的ease.8s;
-o型过渡:全部为0.8s;
过渡期:全部轻松。8秒;
}


将您的代码直接放在问题中(支持性的小提琴很好)。解释你想要达到的目标。解释什么不起作用。这里出了什么问题?