在 Chrome 中的页面上使用动画时出现奇怪的背景故障

Posted

技术标签:

【中文标题】在 Chrome 中的页面上使用动画时出现奇怪的背景故障【英文标题】:Weird background glitch when using animation on the page in Chrome 【发布时间】:2018-04-12 00:34:19 【问题描述】:

如果我有一个动画元素后跟另一个非动画元素,Chrome 中会出现条带效果和各种颜色偏移错误。很难看,但我录了一个视频(如果你放大页面,颜色会变化,更容易看到):https://d26dzxoao6i3hh.cloudfront.net/items/1w1k2e3v0g04142U2A3H/Screen%20Recording%202017-10-30%20at%2011.35%20PM.mov

header 
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #263238;
 
 
 header a 
  animation: scroll-down-anim 1s infinite;
 

@keyframes scroll-down-anim 
  0% 
    transform: translateY(0);
  
  100% 
    transform: translateY(10px);
  
<header>
  <a href="#">Animated element</a>
 </header>
 <p>if i remove this, the glitch disappears</p>

任何想法如何解决这个问题?如果我删除 &lt;p&gt; 元素,它可以工作。也适用于任何其他浏览器,例如 Safari。

【问题讨论】:

什么版本的 Chrome?这对我来说在 Chrome 61、OS X 中运行良好。 【参考方案1】:

这实际上对我有用,所以我强烈怀疑只是你的显卡或 Chrome 版本有问题。

但是我建议它发生的原因是 translate 样式强制 Chrome 使用 GPU 进行渲染并且在那里有 P 标签给它带来了困难。

如果您要强制 P 标签也使用相同的翻译,那么这可能会为您解决问题,如下所示:

p 
    transform: translateY(0);
  

【讨论】:

【参考方案2】:

它与 chrome 或您的代码无关

这是你的显卡!特别是如果你有一个 m 系列 Gpu(确切地说是笔记本电脑)

因此,当您使用高于或低于显示器原生设置的比率或分辨率时,您会对 gpu 施加太大压力!

通过操作系统本身更新您的图形软件或将分辨率恢复为出厂分辨率

【讨论】:

以上是关于在 Chrome 中的页面上使用动画时出现奇怪的背景故障的主要内容,如果未能解决你的问题,请参考以下文章

在 Qt 中移动头文件时出现奇怪的预处理器行为

更改 NavigationItem 提示时出现奇怪的动画

在 Chrome 上打印 Bootstrap 表时出现错误

使用 NSFetchedResultsController 时出现奇怪的删除行为

在 Chrome 中页面加载时出现 Popstate

尝试在 debian linux 上运行 ember 测试时出现奇怪的错误