我有一个使用间隔每 5 秒弹跳一次的 div。
当滚动到页面底部时,这个 div 淡出,间隔被清除。
但是,我认为间隔被多次创建并重叠本身存在问题。
有没有办法检查是否设置了间隔,如果设置了,则清除它,如果没有,设置它?
我需要清除间隔的原因是因为jquery的反弹效果导致div即使隐藏了也会再次出现。
JSBIN:http: //jsbin.com/ijuhok/4/
我有一个使用间隔每 5 秒弹跳一次的 div。
当滚动到页面底部时,这个 div 淡出,间隔被清除。
但是,我认为间隔被多次创建并重叠本身存在问题。
有没有办法检查是否设置了间隔,如果设置了,则清除它,如果没有,设置它?
我需要清除间隔的原因是因为jquery的反弹效果导致div即使隐藏了也会再次出现。
JSBIN:http: //jsbin.com/ijuhok/4/
您需要覆盖现有间隔,以便您可以从任何地方清除它:http: //jsbin.com/ijuhok/5/。
$j("#more").fadeIn('slow',function(){
ResInterval = window.setInterval(bounceMore, 5000);
// no "var"
});
你可以消除$(document).ready
因为window
它总是可用的。
您的问题是您ResInterval
在本地范围内定义,因为您使用过var
:
$j("#more").fadeIn('slow',function(){
var ResInterval = window.setInterval('bounceMore()', 5000);
});
删除var
前缀,您的代码将按预期工作:目前,ResInterval
是fadeIn
. 省略时var
,间隔将分配给最近的ResInterval
声明(使用var
)。
我这样做如下,我的问题解决了。当您 clearTimeout 计时器时,您应该将值设置为“false”。
var timeer=false;
----
----
if(timeer==false)
{
starttimer();
}
-----
-----
function starttimer()
{
timeer=setInterval(activefunction, 1000);
}
function pausetimer()
{
clearTimeout(timeer);
timeer=false;
}