【发布时间】:2021-02-07 14:14:03
【问题描述】:
我有一组图像。当您单击该按钮时,我的图像会以与它们实时变化的顺序(早上、下午、晚上、晚上)相同的顺序滚动,从对应于一天中当前时间的那个开始。例如,如果是白天,那么当您单击它时应该显示晚上。如果是晚上,那么第二天早上一定会出现。我的代码,但它不起作用
const images = ['assets/images/morning/01.jpg', 'assets/images/day/01.jpg', 'assets/images/evening/01.jpg', 'assets/images/night/01.jpg'];
let i = 0;
function changeImage() {
let today = new Date(),
hour = today.getHours();
if (hour < 12) {
// Morning
i = 0;
}
if (hour < 14) {
i = 1
document.body.style.color = 'black';
}
if (hour < 18) {
// evening
i = 2
}
if (hour < 0) {
// Night
i = 3
}
let index = i;
const imageSrc = images[index];
viewBgImage(imageSrc);
i++;
}
btnImage.addEventListener('click', changeImage)
【问题讨论】:
-
我还没有运行代码,但在我看来
hour < 0是不正确的,当你想知道它是否是夜晚时。 -
代码不完整/情况不可重现。即
viewBgImage和btnImage未在此代码中定义。但也许作为一些一般建议,您可以考虑使用通用变量名称let i进行全局状态跟踪不是一个好主意。或者,您可以将状态作为具有<img>标记的容器的属性来跟踪。在我看来,viewBgImage实际上是改变图像的功能,changeImage是一个刷新过程。
标签: javascript arrays