【发布时间】:2013-07-08 16:14:50
【问题描述】:
我编写了一个小示例页面,其中包含可在触摸设备上拖动的元素(基于 code by Peter-Paul Koch)。
我有两个可拖动的<div> 元素:一个绿色块和一个红色球(用border-radius 制成球形)。拖动是通过ontouchstart、ontouchmove和ontouchend实现的,“动画”是通过更改这些元素的top和left CSS属性来完成的。
当我拖动绿色的时候,所有的都是玫瑰和马蹄。
但是,当我在 iPad 1(运行 iOS 5.1.1)或 iPad 3(6.0.1)上的 Safari 中拖动红色时,我会在圆圈的后边缘处看到一些浅红色的痕迹(见截图下面)。
但是,我在 iPhone 5 (6.1.4) 上看不到这些踪迹。
有没有办法摆脱这些痕迹?
(额外问题:这种效果有术语吗?“重影”?“神器”?)
【问题讨论】:
-
我认为恰当的术语是“iOS 渲染错误”。
-
我非常怀疑这里发生了什么。首先,一个测试:你可以尝试添加 -webkit-transform: translateZ(0);到#bawl { ... } 规则集?
-
太棒了!这本身就是一个基本技巧,但我对到底发生了什么有一个相当冗长的怀疑。我会在午餐时添加一个带有解释的答案。 :)
-
至少在 iOS 7 beta 3 中,您的网站可以正常工作,没有人工痕迹。
-
@JordanGray:一点也不光顾,而且在 Stack Overflow 上这无论如何都无关紧要 - 答案既适用于未来的访问者,也适用于提出问题的用户,所以添加细节/来源/参考总是好的。
标签: javascript ios css touch-event