jQuery有时会将用户带到页面顶部

时间:2018-11-15 18:28:45

标签: javascript jquery

我目前有一个自动幻灯片演示,可以循环播放三张不同的图片。我有一个 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

0 个答案:

没有答案