1

我在某处读过,(不幸的是,我再也找不到我的源代码了)如果用户加载了一个带有正在运行的 CSS3 动画(无限参数)的 HTML 页面并且他决定离开它,浏览器(计算机)仍然不必要地播放动画等等,尽管用户离开了页面,但 CPU(或加速硬件?)仍在为动画工作。

所以如果有人能回答我,我会很高兴。

这个事实是真的吗?

如果这是真的:

  1. 转换是否也关注这个问题?

  2. 暂停动画(如果涉及到过渡)是否足以避免这个问题?(我正在考虑通过onbeforeunload事件强制暂停)或者我应该做另一件事吗?请注意,我不想使用“悬停”来启动动画/过渡。

PS:我还是 CSS、javascript 的新手,不知道其他语言。很抱歉,但我的英语知识还远远不够……

4

1 回答 1

0

如果用户完全离开页面(例如导航到一个全新的页面或关闭该选项卡),则动画不应继续运行。如果它们以某种方式不断更新,那是因为浏览器错误,无论如何您都不应该担心。

但是,隐藏元素(例如 )的 CSS3 动画display: none;仍然会被评估,因为它们是基于关键帧的,并且将来某个时候可能会有一个关键帧会导致元素再次变得可见。

想象一下,想要通过首先隐藏一个盒子,然后再次显示它并使其闪烁来制作动画。如果在隐藏盒子时 CSS 过渡突然被禁用,动画将停止并且盒子再也不会出现。这不是你想要的。

注意:可以在 Chrome 中使用开发者工具(F12 -> Profiles)对您的网页进行分析。我还没有用它来分析 CSS3 动画,所以我不确定它是否可以完成。但是,您可以只看一下 Chrome 自己的任务管理器 ( Shift-ESC),看看您的网站是否占用了大量的 CPU。如果这是真的,则表明该页面上的动画可能过多。

于 2013-07-05T10:35:25.653 回答