css - 这是 Safari CSS 转换错误吗?
问题描述
我遇到了一个奇怪的错误,我怀疑是 Safari CSS 错误。发生的情况是动画元素在 CSS 过渡期间消失,并在其结束时重新出现。此错误仅在 Safari 上发生。它在 Chrome 和 Firefox 上运行良好。此外,如果动画元素的初始位置小于页面宽度的一半,它也可以正常工作。
如果您使用的是 Safari,您可以在这里看到问题:http: //yodesign.se/transition-anomaly/
调整浏览器窗口的大小,使文本靠近窗口的右边缘。单击移动按钮。文本会短暂消失,然后重新出现在其新位置。按 Unmove 将其移回。
现在使浏览器窗口非常宽,使文本(在其未移动位置)位于窗口的中心,然后再试一次。动画现在按预期工作。
这是完整的代码:
<html>
<body>
<button onclick="move(true)">Move</button>
<button onclick="move(false)">Unmove</button>
<div id="mover" style="position: relative;transition: transform 0.5s;">
<div style="position: absolute; left: 800px;">
<div>Close to right edge</div>
</div>
</div>
</body>
<script>
function move(doMove) {
document.getElementById('mover').style.transform = doMove ? "translate(-300px, 0)" : "translate(0, 0)";
}
</script>
</html>
有可能我在 CSS 中忽略了导致此错误发生的某些内容,但由于它在其他浏览器中工作正常(以及在 Safari 中使窗口更宽时),我怀疑这是一个 Safari CSS 错误。初始代码来自 CMS 系统,上面显示的代码片段是一个大大简化的版本,仍然显示错误。因此,关于如何重新安排“网页”以使其正常工作的建议对我没有帮助。我已经在 Safari 13.01 以及 webkit nightly build 上复制了这个。
-JM
解决方案
尝试在样式中添加 -webkit-transition: -webkit-transform 0.5s
推荐阅读
- c# - 如何将特定按钮按下记录到 xml?
- javascript - 在异步计时中调用 Javascript 函数
- python - 无法将 TensorFlow 模型冻结到冻结(.pb)文件中
- c# - NuGet、Packages.config、.csproj 和参考
- scala - 使用fixture.FlatSpecLike将特征混合到ScalaTest中的测试方法中
- android - 如何完全断开 Android 应用与 Firebase 的连接(在 Android Studio 中)
- ios - 解决单次目标检测器中的类别不平衡问题
- javascript - 遍历对象及其属性的数组列表
- asp.net-core - 在 aspnet core 和 ef core 中使用 automapper.collection 不会更新集合中的已编辑记录
- workflow - %ACTUAL_PATH% Alfresco 归档路径属性的值