我想知道是否有办法setInterval
明确自己.
像这样的东西:
setInterval(function () {
alert(1);
clearInterval(this);
}, 2000);
Run Code Online (Sandbox Code Playgroud)
我希望它继续检查,如果它完成它将停止.
我按照 W3Schools 的本教程创建了一个图像幻灯片:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_auto
它使用递归函数setTimeout()
来自动滑动图像。这对用户的浏览器性能有害吗?或者我可以放心使用它吗?
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {
slideIndex = 1
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
setTimeout(showSlides, 2000); // Change image every …
Run Code Online (Sandbox Code Playgroud) 从 10 到 1 的循环倒计时工作正常,但我想在暂停 3 秒后再次开始倒计时(从 10 到 1,无需重新加载)。我尝试在 setTimeOut 中使用 setTimeOut 但它不起作用。这是代码。
var countdownNumberEl = document.getElementById('countdown-number');
var countdown = 10;
countdownNumberEl.textContent = countdown;
setInterval(function() {
countdown = --countdown <= 0 ? 10 : countdown;
countdownNumberEl.textContent = countdown;
setInterval(function(){
countdownNumberEl.textContent = countdown;
},3000)
}, 1000);
Run Code Online (Sandbox Code Playgroud)
<div id="countdown">
<div id="countdown-number"></div>
<svg>
<circle r="18" cx="20" cy="20"></circle>
</svg>
</div>
Run Code Online (Sandbox Code Playgroud)