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

布兰登·贝内菲尔德

我有一个已经创建的轮播插件,我需要一种方法来使其运行将图像移到侧面并引入下一个图像的功能。我使用导航箭头进行此操作,但我想实现一种方法来单独执行此操作。

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);
  });
基里尔·西蒙诺夫(Kirill Simonov)

您可以使用setInterval方法,方法重复调用一个函数。然后打电话clearInterval停止它。

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我需要一个浏览器chrome / firefox扩展程序来列出当前页面中的所有iframe src。有什么建议吗?

Javascript-在另一个浏览器/页面中滚动底部

如何使用pid杀死Google Chrome浏览器的一个标签页

我试图在默认的Web浏览器中打开一个URL。但它没有回应。它不会打开默认的Web浏览器

如何阻止激烈的Javascript循环冻结浏览器

For循环正在杀死浏览器

阻止一个元素与浏览器缩放成比例缩放?

当我在浏览器中单击“后退”按钮时,我需要将上一页重新加载到“另一个URL”

我可以将JavaScript变量传递到另一个浏览器窗口吗?

ActiveMQ浏览器最后一个.hasMoreElements()需要很长时间

如何使用浏览器的后退按钮获取上一个搜索页面

Angular是否需要Web服务器才能运行?如果我给浏览器一个本地文件的URL,Angular是否可以工作?

区分单击X关闭浏览器和jquery / javascript中的后退或上一个浏览器按钮

当我在他们的浏览器中对其进行测试时,为什么我的网址会转到一个空的登录页面?

为什么在我调度一个添加动作时浏览器会崩溃?

使我的代码在一个浏览器选项卡上在后台运行

IONIC 1 SERVE -L 命令在浏览器上给我一个错误

用于阻止浏览器弹出的Javascript

检查浏览器宽度并执行一个Javascript文件并覆盖另一个Javascript

TestNG.xml-关闭第一个浏览器后,新的浏览器会话不会打开

for循环不会“扩大”圈子。我需要“成长”一个圈子

如何使setInterval countUp计时器即使在“另一个页面”或“浏览器刷新”中也保持计数?

我试图在浏览器中制作一个javascript绘图程序,并且东西未对齐。我的代码有问题吗?

浏览器会为iframe提供一个单独的JavaScript线程吗?

我正在构建一个基于C#的浏览器,当我在输入URL的同时按E时,浏览器尝试导航至该地址

如何使用javascript一个接一个地添加元素并在浏览器中更新?

如何仅在浏览器 Javascript 上完成另一个功能后执行一个功能?

我正在创建一个浏览器应用程序,但是当我单击任何URL时,Android不会在选择器中检测到我的应用程序

调整浏览器窗口大小后,有什么方法可以使网站转到另一个页面?