Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我对这个幻灯片放映代码做了什么错误?_Javascript_Html_Css_Slideshow - Fatal编程技术网

Javascript 我对这个幻灯片放映代码做了什么错误?

Javascript 我对这个幻灯片放映代码做了什么错误?,javascript,html,css,slideshow,Javascript,Html,Css,Slideshow,我编写了一个非常简单的幻灯片放映,每5秒放映一张新幻灯片。幻灯片放映图像名称为:1.png、2.png、3.png等。共有5张幻灯片。当我刷新浏览器时,幻灯片放映不起作用。为了记录在案,我在w3schools.com和其他教程的帮助下编写了这段代码,并从网站上直接复制了代码(当然我更改了变量)。即使我这样做了,它仍然不起作用。请帮忙 JS代码(中文): 很抱歉没有代码片段,但该站点的代码太长 注:所有幻灯片放映图像的尺寸均为:505x330像素。问题在这一行: document.getEleme

我编写了一个非常简单的幻灯片放映,每5秒放映一张新幻灯片。幻灯片放映图像名称为:1.png、2.png、3.png等。共有5张幻灯片。当我刷新浏览器时,幻灯片放映不起作用。为了记录在案,我在w3schools.com和其他教程的帮助下编写了这段代码,并从网站上直接复制了代码(当然我更改了变量)。即使我这样做了,它仍然不起作用。请帮忙

JS代码(中文):

很抱歉没有代码片段,但该站点的代码太长


注:所有幻灯片放映图像的尺寸均为:505x330像素。

问题在这一行:

document.getElementById( "slider" ).style.backgroundImage="url(number + '.png')";
将var
number
放在双引号内,双引号将其视为字符串而不是变量。将其更改为:

document.getElementById( "slider" ).style.backgroundImage="url(" + number + ".png)";

问题就在这一行:

document.getElementById( "slider" ).style.backgroundImage="url(number + '.png')";
将var
number
放在双引号内,双引号将其视为字符串而不是变量。将其更改为:

document.getElementById( "slider" ).style.backgroundImage="url(" + number + ".png)";

<>你可以考虑把你的函数改成:

<script>
var number = 0;

function change_slide() {
    number = ++number % 5;
    document.getElementById("slider").style.backgroundImage = ["url('", number, "'.png')"].join("");
    setTimeout(change_slide, 5000);
}

</script>

var数=0;
功能更改\u幻灯片(){
数字=++数字%5;
document.getElementById(“slider”).style.backgroundImage=[“url(”,number,“.png”)”]。join(“”);
设置超时(更改幻灯片,5000);
}

<>这个罪魁祸首应该如<代码> @ Matt L/<代码>。

你可以考虑将你的函数改为:

<script>
var number = 0;

function change_slide() {
    number = ++number % 5;
    document.getElementById("slider").style.backgroundImage = ["url('", number, "'.png')"].join("");
    setTimeout(change_slide, 5000);
}

</script>

var数=0;
功能更改\u幻灯片(){
数字=++数字%5;
document.getElementById(“slider”).style.backgroundImage=[“url(”,number,“.png”)”]。join(“”);
设置超时(更改幻灯片,5000);
}

这个罪魁祸首应该如
@Matt L

所指出的,下面的答案将告诉您为什么它不起作用,但是我将添加一个旁注,并告诉您,您可能应该调用
setTimeout
而不是
setInterval
。调用
setInterval
将创建一个循环,在本例中,循环每5000毫秒发生一次。但是,在本代码中,每次调用函数时都会创建该循环,这将很快导致该函数每5000毫秒被调用几十次或数百次。下面的答案将告诉您为什么它不起作用,不过,我将添加一个旁注,并告诉您,您可能应该调用
setTimeout
,而不是
setInterval
。调用
setInterval
将创建一个循环,在本例中,每5000毫秒发生一次。然而,在这段代码中,每次调用函数时都会创建该循环,这将很快导致该函数每5000毫秒被调用几十次或数百次。因此,我将代码更改为您的代码,但仍然没有任何结果。我甚至试着制作一个没有css的新div,但也没有/啊!!好的,所以我把“document.getElement”行改成了@Matt L提供的行,它工作得很好。谢谢你的帮助!你好@AdamW。你确定这些URL上有图像吗?所以我把代码改成了你的代码,但还是一无所获。我甚至试着制作一个没有css的新div,但也没有/啊!!好的,所以我把“document.getElement”行改成了@Matt L提供的行,它工作得很好。谢谢你的帮助!你好@AdamW。你确定这些URL上有图像吗?所以我在@82Tuskers代码中使用了你的代码,效果非常好!谢谢你的帮助!所以我在@82Tuskers代码中使用了您的代码,它非常有效!谢谢你的帮助!
<script>
var number = 0;

function change_slide() {
    number = ++number % 5;
    document.getElementById("slider").style.backgroundImage = ["url('", number, "'.png')"].join("");
    setTimeout(change_slide, 5000);
}

</script>