JavaScript:我需要一个不会终止浏览器或阻止页面的连续循环

标签 javascript loops carousel continuous

我有一个我创建的轮播插件,我需要一种方法让它运行一个函数,将图像移到一边并引入下一个图像。我有这个与导航箭头一起工作,但我想实现一种方法让它自己完成。

我很难找到这方面的信息,因为 Google 被每个人的轮播库填满了。

基本上,我只需要这样的东西:

window.setTimeout(() => {
  // do something
}, 1000);

但除非触发特定事件,否则它需要一遍又一遍地运行。我的第一个想法是 while 循环,但那将是灾难性的。

我没有太多要展示的,但目前,这是代码:

  let mouseIsOver = false;

  inner.addEventListener('mouseenter', () => {
    mouseIsOver = true;

    console.log(mouseIsOver);
  });

  inner.addEventListener('mouseleave', () => {
    mouseIsOver = false;

    console.log(mouseIsOver);
  });

最佳答案

您可以使用 setInterval重复调用函数的方法。然后调用 clearInterval 来停止它。

const inner = document.getElementById('inner');
const pages = ['mediumspringgreen', 'coral', 'cyan', 'moccasin'];
let interval = start();
let i = 0;

function start() {
    return setInterval(() => inner.style.background = pages[i++ % 4], 3000);
}

inner.addEventListener('mouseenter', () => {
  clearInterval(interval);
  console.log('pause');
});

inner.addEventListener('mouseleave', () => {
  interval = start();
  console.log('continue');
});
#inner { width: 100px; height: 100px; background: cyan }
.as-console-wrapper { max-height: 1.5em !important; }
<div id=inner></div>

关于JavaScript:我需要一个不会终止浏览器或阻止页面的连续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49229512/

相关文章:

javascript - 从 javascript 调用 Webform 身份验证页面后面的 .net Web 服务

javascript - 带 setTimeout 的 slider - 'removeClass is not a function error'

javascript - Paypal Express Checkout PHP,将其加载到花式框而不是弹出窗口

python - 使用列表、字典和循环匹配密码子

jquery - Bootstrap Carousel - 根本不循环

css - Bootstrap 4 轮播中的内容对齐/禁用左侧指示器

javascript - 使用 javascript 漂亮地打印 XML

java - 将图像添加到 GridLayout 中的单元格

loops - 如何使用两个迭代器进行迭代

jquery - Twitter Bootstrap 轮播中每张幻灯片的淡入和淡出内容