输入字段留下 CSS3 转换的痕迹(在 Chrome 15 中)
http://jsfiddle.net/danielcgold/SYgzJ/
当您单击输入然后进行模糊时,伪像会留下Chrome 15 中的屏幕。我第一次注意到这个问题是在我一直在开发的一个网站上,所以我删除了所有内容,只保留了输入字段和一个按钮。当我删除按钮时,转换发生得很好。有什么想法吗?
http://jsfiddle.net/danielcgold/SYgzJ/
When you click on the input then go on blur, artifacts are left on the screen in Chrome 15. I first noticed this issue on a site i've been developing so I eliminated everything but just the input field and a button. When I remove the button, the transition happens just fine. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将此 CSS 添加到您的输入字段:
这将强制 Chrome 使用您的 GPU 来完成所有渲染,这将解决伪像问题并使您的动画变得更加窒息。
Add this CSS to your input field:
This will force Chrome to use your GPU to do all the rendering which will solve the artifacts problem and make your animations smother.
这是 Chrome 渲染 CSS 过渡时的一个错误。但您可以通过强制元素“刷新”操作来解决此问题。请注意,您需要刷新的不是
input
元素,而是它的父元素,因此以下代码将帮助您:并且
repaint
类应该具有与父视图相关的内容,例如例如不同的颜色:但是您可以将
color
替换为visibility
或其他与视图相关的(但对父级不重要/可见)属性。这是 jsfiddle 演示解决方法
This is a bug in Chrome's rendering of CSS transitions. But you can workaround it by forcing element "refresh" operation. Please note that you need to refresh not the
input
element, but it's parent, so the following code will help you:And
repaint
class should have something related to parent's view, for example different color:But you may replace
color
withvisibility
or other view-related (but not important/visible for parent) attribute.Here is jsfiddle to demonstrate the workaround
我在 Safari 中遇到了类似的盒阴影伪影问题,并发现将
-webkit-transform:scale(1);
添加到焦点规则可以解决该问题。请参阅 http://jsfiddle.net/SYgzJ/48/ – 现在应该可以正常工作了。
正如 Cesar 所说,
-webkit-transform:translate3d(0,0,0);
会修复它,但它也会影响文本渲染。I had a similar problem with box shadow artifacts in Safari, and found adding
-webkit-transform:scale(1);
to the focus rule fixed the problem.See http://jsfiddle.net/SYgzJ/48/ – it should work fine now.
As Cesar said,
-webkit-transform: translate3d(0,0,0);
will fix it, but it can affect text rendering too.