我为设置Interval做了一个演示但是对于明确的Interval感到困惑。在这里,我写完整的演示代码。 请改进它。
$(document).ready(function() {
$('.done').click(function() {
$('.def').show(400).hide(5800);
if ($('.def').css('display') == 'block') {
$('.def').addClass('aa');
}
});
setInterval(
function abc() {
if ($('.def.aa').css('display') == 'none' && $(window).scrollTop() >= 0) {
console.log(8);
$('.def.aa').removeClass('aa');
$('html,body').animate({
scrollTop: $('.done').offset().top - 5
}, 400);
return false;
}
}, 400);
});
.abc {
color: red;
font-size: 18px;
font-family: cursive;
}
.def {
color: black;
font-size: 29px;
}
.done {
font-size: 13px;
font-family: fantasy;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="content">
<p class="abc">Demo Text Demo Text Demo Text</p>
<p class="def" style="display: none">show this</p>
<a href="/" class="done">Click Me</a>
</div>
在此Set Interval工作正常,但可能是因为Interval浏览器有明显悬挂问题。
答案 0 :(得分:1)
将您的间隔设置为变量并清除此变量
var inter = setInterval(function(){}, 1000);
clearInterval(inter);
参考的
答案 1 :(得分:0)
您需要将setInterval
的返回值指定给变量。
将该变量添加到您的函数中,如
var myInterval = 0;
然后在你的函数中添加myInterval = setInterval ...
当你想要清除它时,只需致电clearInterval(myInterval);
答案 2 :(得分:0)
在 setInterval()
中设置间隔var myVar = setInterval(function(){}, 1000);
清除间隔
clearInterval(myVar);