javascript - 当浏览器窗口最小化时,JS 会发生什么?

标签 javascript html css browser

是否 JS 继续执行,但在用户再次查看该浏览器窗口/选项卡之前不会呈现 HTML?

运行下面的例子,离开浏览器窗口一段时间再回来,看起来好像有什么东西被排队了?它是什么?为什么?我可以阻止它吗?

setInterval(updateTiles, 4000);

function updateTiles() {

  var boxes, randomIndex, randomBox;

  boxes = $(".box");

  randomIndex = Math.floor(getRandomArbitrary(0, boxes.length));
  randomBox = $(boxes[randomIndex]);

  $(randomBox).toggleClass("flipper");
}

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
.box {
  width: 100px;
  height: 100px;
  background: blue;
  float: left;
  margin:10px;
}

.flipper {
  transition: 1.5s;
  transform-style: preserve-3d;
  transform: rotateX(360deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>

最佳答案

一旦窗口获得焦点,setTimeout 和 setInterval 将累积并立即运行。对于排队的动画,它看起来很突然,有时甚至是卡顿。我建议使用了解当前窗口焦点的 window.requestAnimationFrame。因此您提供的动画或功能将不会执行。

关于javascript - 当浏览器窗口最小化时,JS 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49917847/

相关文章:

javascript - 由于与其他元素的干扰,Bootstrap 模态窗口无法打开

jquery - 将 CSS 动态加载到文档头部并在加载后等待

javascript - D3 强制布局,较大的节点聚集在中心

javascript - 将数据从 MVC Controller 传递到 Angular View ,而不在最终 html 中显示数据值

javascript - 只在桌面电脑上执行JS功能(视差插件)

html - 创建页脚 HTML/CSS - 不工作

javascript - 如何设置包含特定值的谷歌表格图表列的样式

javascript - 如何测试 :before selector with Jasmine in an Angular 6 project? 的内容

javascript - 如何保持标题静态,滚动时始终位于顶部?

javascript - 语法错误 : Missing initializer in destructuring declaration