我目前有一个自动幻灯片演示,可以循环播放三张不同的图片。我有一个 fadeOut 和 fadeIn 功能,并且两者之间有一个 await sleep ,所以我的下一张图片不会开始淡入我的第一张照片之前淡出。这是功能:
$('#next').on('click', async function(event){
event.preventDefault();
$('#im_' + currentImage).stop().fadeOut(600);
await sleep(600);
increaseImage();
console.log(currentImage);
$('#im_' + currentImage).stop().fadeIn(600);
return false;
});
我创建了一个按钮,该按钮会在 5秒后自动单击。当它单击屏幕上的图像时,图像开始淡出,一直等到其淡出(await sleep
),然后淡入下一张图片。
我的问题是,当图片开始淡入淡出时,代码显然会随机将用户带到页面顶部。这并不统一,有时会在第一次图片更改时发生,有时,可能是任何时候的第40位。
发生了什么事?我觉得我把 preventDefault / return 假放在错误的位置,但是如果是这样,为什么它们放置不正确?我将 preventDefault 放置在代码行之后,以查看它是否会更改,但不会更改。
这是我的 sleep 功能,在您因在javascript中使用 sleep 而生我的气之前。或者因为我还很新而生我的气。
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
这仍然是一个光秃秃的网站,但您可以在这里http://18.223.125.182/Dad_Website/index.html