在 chrome 中的第一次过渡时隐藏卡背

Posted

技术标签:

【中文标题】在 chrome 中的第一次过渡时隐藏卡背【英文标题】:Card back hidden on first transition in chrome 【发布时间】:2020-04-10 06:49:17 【问题描述】:

我正在开发一种在正面和背面显示各种内容的通用卡片。卡片一键翻转 180 度。

在 Chrome 中,当我在背面有包含绝对或相对定位的内容时,卡片的背面仅在过渡结束时(或附近)才可见。

在 Safari 和 Firefox 中我没有看到同样的问题。

问题可以在这支笔中看到 https://codepen.io/rumbletumble/pen/GRgNeLg

我试过了

使用动画而不是过渡,但存在同样的问题 在卡片背面添加backface-visibility: visible,但这会导致卡片闪烁

这可能只是 Chrome 中的一个错误吗?

【问题讨论】:

【参考方案1】:

我已经更改了下面的类,现在它似乎在所有浏览器中都可以正常工作。 (无法测试 IE)

/* hide back of pane during swap */
.front, .back 
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;

  transform: rotateX(0deg);
  transform-style: preserve-3d;

  position: absolute;
  top: 0;
  left: 0;
  color: cornSilk;
  text-align: center;
  font: 3em/240px 'Helvetica Neue', Helvetica, sans-serif;
  box-shadow: -5px 5px 5px #aaa;

【讨论】:

不幸的是,这个解决方案不起作用。该问题仅在第一次转换时发生,随后的转换不会出现问题。现在 Chrome 已经完全支持 backface-visibility 超过 5 年了,所以应该不需要供应商前缀。 developer.mozilla.org/en-US/docs/Web/CSS/backface-visibility 抱歉,我必须在真正完成编辑之前发布此内容,我已对上述内容进行了编辑,现在似乎对我有用,而且您对多年来支持背面可见性的说法是正确的,应该总是去官方文档duh! 好像加了transform-style:preserve-3d;到后面已经解决了这个问题。但是,我不确定为什么。根据我在文档中阅读的内容,这将创建一个新的 3D 上下文,但我们已经在包含“翻转器”的元素上指定了 preserve-3d。知道为什么这可以解决问题吗? 如果您有任何进一步的链接,那就太好了。感谢您的回答!

以上是关于在 chrome 中的第一次过渡时隐藏卡背的主要内容,如果未能解决你的问题,请参考以下文章

忽略溢出的 CSS 不透明度过渡:隐藏在 Chrome/Safari 中

CSS 过渡无法正常工作

Chrome 中的过渡滤镜时背景图像颤抖

Chrome 中的 CSS3 过渡故障

在页面之间隐藏时移动到 ScrollView 中的特定页面 - iOS

CSS3颜色过渡在Chrome中不起作用