css - 当浏览器选项卡暂停时,如何防止 CSS 动画暂停
问题描述
我有移动线动画,由 CSS 提供支持:
.line {
transition: all 30s cubic-bezier(0, 0, 0, 1);
transform: translate3d(-1000px, 0px, 0px);
}
这条线在 X 轴上移动了 30 秒到 -1000 像素。
问题:
当我将浏览器选项卡切换到其他网站时,带有此动画的选项卡上的动画可以设置为暂停,但是当我返回带有此动画的选项卡时,动画恢复了。
我需要的行为:
当用户切换浏览器选项卡时,我需要让动画不断移动而不会暂停。
解决方案
如果我理解正确,那么您需要在用户离开浏览器的当前选项卡后继续动画。该visibilitychange
活动将对此有所帮助。我在下面制作了通常的示例代码,但您需要为您的任务自定义此代码。
我还指定line.style.animationPlayState = 'running'
- 正是在这个条件下,动画的逻辑继续。
let line = document.querySelector('.line');
document.addEventListener("visibilitychange", function() {
if (document.visibilityState == 'hidden') {
line.style.animationPlayState = 'running';
} else {}
});
推荐阅读
- python - 在共享状态的同时编写函数式 Python 代码
- r - 发出网页抓取网站:不提取任何内容
- mysql - 如何使用时间戳优化 SQL 查询
- typescript - 键入 Vue3 组件函数参数时出错,意外标记(冒号)
- html - 向 inline-flex 容器添加边框时换行
- delphi - SizeOf 枚举集,32 位与 64 位和内存对齐
- docker - Docker pip install 正在获取旧版本
- javascript - 将 Json 数据映射到新的键值对 Node.js
- python - 尽管安装和激活,但没有找到名为“flask”的模块
- go - 弃用和撤回之间的区别?