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