Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
图像的旋转传送不会前进(HTML/JavaScript)_Javascript_Html - Fatal编程技术网

图像的旋转传送不会前进(HTML/JavaScript)

图像的旋转传送不会前进(HTML/JavaScript),javascript,html,Javascript,Html,我试图让转盘在访问页面时立即启动,并每2.5秒循环一系列图像,但它不会超过第一个图像。我环顾了这里和其他学校,但没有找到我的问题所在。任何帮助都将不胜感激 JavaScript如下所示: HTML代码: 一个好的提示是检查控制台是否有错误 除了一些使代码更易于维护、可读或语义更正确的技巧外,代码流没有任何问题 您只是在window.onload=slideShow中忘记了一个=in 并且document.getElementByClass不存在。您需要使用document.getElements

我试图让转盘在访问页面时立即启动,并每2.5秒循环一系列图像,但它不会超过第一个图像。我环顾了这里和其他学校,但没有找到我的问题所在。任何帮助都将不胜感激

JavaScript如下所示:

HTML代码:


一个好的提示是检查控制台是否有错误

除了一些使代码更易于维护、可读或语义更正确的技巧外,代码流没有任何问题

您只是在window.onload=slideShow中忘记了一个=in

并且document.getElementByClass不存在。您需要使用document.getElementsByClassName。。。要使用该类获取元素数组,并最终使用[0]获取其第一项,如下所示:

var photo=document.getElementsByClassNamestocktonPics[0]

请注意,当为幻灯片放映指定window.onload时,幻灯片放映不再需要调用它。这是因为您将window.onload分配给slideShow函数,而不是调用slideShow的结果,在本例中,slideShow是未定义的,因为不会返回任何内容

您的图像数组应该这样分配:var images=[a,b,c]

您应该做的另一件事是将图像数组保持在函数范围之外,这样您就可以更轻松地使用它并对其进行更改,而不是在调用函数时不计算优化次数时创建一个图像数组。最后,window.setInterval a,b可以获取一个将被求值的字符串或与之等效的字符串,也可以获取一个函数本身。在您的情况下,您需要的只是函数:window.setInterval nextSlide,2500

以下是最终的完整代码:

var i=0;
var images=[
      "images/stockton0.jpg",
      "images/stockton1.jpg",
      "images/stockton2.jpg",
      "images/stockton3.jpg",
      "images/stockton4.jpg",
      "images/stockton5.jpg",
      "images/stockton6.jpg",
      "images/stockton7.jpg",
      "images/stockton8.jpg",
      "images/stockton9.jpg",
      "images/stockton10.jpg" ];

function slideShow() {
    window.setInterval( nextSlide, 2500);
}

function nextSlide() {
    var photo = document.getElementsByClassName("stocktonPics")[0];
    photo.src = images[i];
    i++;
}

window.onload = slideShow;
getElementsByClass 方法将获得一个类似数组元素的对象

因此,应该使用[0]获取第一个元素对象并设置src attr

var pics=document.getElementsByClassNamestocktonPics

它类似于数组元素对象

var firstPic=document.getElementsByClassNamestocktonPics[0]

它是一个元素对象

设i=0; const images=[images/stockton0.jpg, 图片/stockton1.jpg, 图片/stockton2.jpg, 图片/stockton3.jpg, 图片/stockton4.jpg, 图片/stockton5.jpg, 图片/stockton6.jpg, 图片/stockton7.jpg, 图片/stockton8.jpg, 图片/stockton9.jpg, images/stockton10.jpg]; const stockton=document.getElementsByClassNameexample[0]; 常量幻灯片放映==>{ window.setIntervalnextSlide,2500; } 常数nextSlide==>{ stockton.src=图像[i]; ifi>=images.length-1{ i=0; }否则{ i++; } console.logi,斯托克顿 } 幻灯片放映
So 1-返回数组的its。这意味着它应该是'photo[0].src。2-您应该检查控制台是否存在错误,这些错误将为您指明正确的方向。控制台看起来很清晰。我也清除了我的历史记录/缓存,但没有运气。。。感谢您对“=”@gothamprince的关注,它没有那么多语法和类型errors@towc谢谢我将给这些编辑一个镜头,看看它是如何进行的。@Andreas是吗。。。?哦,该死的,没有理由让询问者进入es6。您的完整代码不包括在任何地方设置src,也没有.getElementByClass这样的东西
<img class="stocktonPics" src="images/stockton0.jpg" alt="slides">
var i=0;
var images=[
      "images/stockton0.jpg",
      "images/stockton1.jpg",
      "images/stockton2.jpg",
      "images/stockton3.jpg",
      "images/stockton4.jpg",
      "images/stockton5.jpg",
      "images/stockton6.jpg",
      "images/stockton7.jpg",
      "images/stockton8.jpg",
      "images/stockton9.jpg",
      "images/stockton10.jpg" ];

function slideShow() {
    window.setInterval( nextSlide, 2500);
}

function nextSlide() {
    var photo = document.getElementsByClassName("stocktonPics")[0];
    photo.src = images[i];
    i++;
}

window.onload = slideShow;