javascript setTimeout 函数,有问题吗
javascript setTimeout fuction,is something wrong with it
我使用了settimeout函数,为什么它不起作用。我只想每 2 秒更改一次图像。但什么也没有发生它只显示第一张图片但它没有改变。
<script type="text/javascript">
function parta(){
document.getElementById("carimg").src="c1.img";
window.setTimeout(partb,2000);
}
function partb(){
document.getElementById("carimg").src="c2.jpg";
window.setTimeout(partc,2000);
}
function partc(){
document.getElementById("carimg").src="c3.jpg";
window.setTimeout(parta,2000);
}
</script>
如果你想让你的代码接近你现在拥有的代码,你只需要改变一些东西:
function parta() {
document.getElementById("carimg").src="c1.img";
window.setTimeout(partb,2000);
}
function partb() {
document.getElementById("carimg").src="c2.jpg";
window.setTimeout(partc,2000);
}
function partc() {
document.getElementById("carimg").src="c3.jpg";
window.setTimeout(parta,2000);
}
parta();
在这种情况下不需要使用while
,因为每个函数将在 2 秒后相互调用。但是,您仍然需要启动 "loop",这就是您需要调用 parta()
的原因。此外,在这种情况下使用 setInterval
可能更有意义。
您可以在 CodePen 上使用此代码片段:https://codepen.io/yvesgurcan/pen/RwwOawO。
您一遍又一遍地声明三个函数,却从未调用过其中任何一个。
如果你想在三张图片之间切换,将它们放在一个数组中,然后使用 setInterval
:
一次遍历数组一个元素
var images = ['c1.img', 'c2.jpg', 'c3.jpg'];
var imgNum = 0;
function rotateImage() {
document.getElementById("carimg").src= images[imgNum];
imgNum = (imgNum + 1) % images.length;
}
rotateImage();
setInterval(rotateImage, 2000);
试试这个
let imageSrc = ['c1.img', 'c2.jpg', 'c3.jpg'];
let imgIndex;
setInterval(()=>{
if(imgIndex == undefined) {
imgIndex = 0;
} else {
if(imgIndex >= imageSrc.length - 1) {
imgIndex = 0;
} else {
imgIndex++;
}
}
document.getElementById("carimg").src = imageSrc[imgIndex];
}, 2000);
我使用了settimeout函数,为什么它不起作用。我只想每 2 秒更改一次图像。但什么也没有发生它只显示第一张图片但它没有改变。
<script type="text/javascript">
function parta(){
document.getElementById("carimg").src="c1.img";
window.setTimeout(partb,2000);
}
function partb(){
document.getElementById("carimg").src="c2.jpg";
window.setTimeout(partc,2000);
}
function partc(){
document.getElementById("carimg").src="c3.jpg";
window.setTimeout(parta,2000);
}
</script>
如果你想让你的代码接近你现在拥有的代码,你只需要改变一些东西:
function parta() {
document.getElementById("carimg").src="c1.img";
window.setTimeout(partb,2000);
}
function partb() {
document.getElementById("carimg").src="c2.jpg";
window.setTimeout(partc,2000);
}
function partc() {
document.getElementById("carimg").src="c3.jpg";
window.setTimeout(parta,2000);
}
parta();
在这种情况下不需要使用while
,因为每个函数将在 2 秒后相互调用。但是,您仍然需要启动 "loop",这就是您需要调用 parta()
的原因。此外,在这种情况下使用 setInterval
可能更有意义。
您可以在 CodePen 上使用此代码片段:https://codepen.io/yvesgurcan/pen/RwwOawO。
您一遍又一遍地声明三个函数,却从未调用过其中任何一个。
如果你想在三张图片之间切换,将它们放在一个数组中,然后使用 setInterval
:
var images = ['c1.img', 'c2.jpg', 'c3.jpg'];
var imgNum = 0;
function rotateImage() {
document.getElementById("carimg").src= images[imgNum];
imgNum = (imgNum + 1) % images.length;
}
rotateImage();
setInterval(rotateImage, 2000);
试试这个
let imageSrc = ['c1.img', 'c2.jpg', 'c3.jpg'];
let imgIndex;
setInterval(()=>{
if(imgIndex == undefined) {
imgIndex = 0;
} else {
if(imgIndex >= imageSrc.length - 1) {
imgIndex = 0;
} else {
imgIndex++;
}
}
document.getElementById("carimg").src = imageSrc[imgIndex];
}, 2000);