繁体   English   中英

Internet Explorer闪烁问题

[英]Internet Explorer flickering issues

我正在构建一个Web应用程序,其中包含一个运行动画,可以再现非便携式marquee元素的行为。 我正在使用http://jscroller2.markusbordihn.de/来解决这个问题,但问题的根本原因似乎与库本身没有直接关系(它只是暴露问题的触发器)。

具体问题如下:

我有一个html form ,其中包含用户必须填写的几个input文本字段。 marquee动画每隔X毫秒运行一次(其中X小于1秒)。 每当文本字段被聚焦时(用户点击它就意图填写它),文本光标不会闪烁(应该如此)并永久保持在条形图中(作为|符号 - 请原谅我的语言... :-))。

我已经将违规代码删除到最低限度,你可以在这里试试: http//jsfiddle.net/kyVqk/

要进行测试,只需按“ Start按钮,然后单击文本字段即可。 每次动画运行时,点应该附加到输入文本下面的标签上,光标不应该闪烁(这就是问题)。 请注意,如果动画以大于1秒的时间间隔运行,则不会发生这种情况(您可以在之前的小提琴中测试)并且光标按预期闪烁。 这让我相信问题在于浏览器在更新过程中执行文本渲染和非聚焦/重新聚焦字段的方式。

此问题特定于Internet Explorer(至少在版本6中),因为其他主要浏览器(Firefox和Chrome)不会出现此行为。 我已经尝试直接通过DOM的对象innerHTML更新标签,但没有成功。 改变的确切内容也不重要。 如果动画仅从元素中读取属性,则问题不会出现(仅在更新元素的属性时 - 任何属性)。

由于我正在开展的项目具有很高的知名度和客户曝光度,因此客户不愿意通过。 有人可以解释为什么会这样吗? 是否有解决方法(在动画之前/之后附加/分离DOM中的元素,在动画之后重新聚焦等)? 请注意,丢失marquee效果不是一种选择。

我过去曾经使用IE浏览过一些闪烁的问题,不知道它是否和你的一样,但试一试:

//@cc_on document.execCommand("BackgroundImageCache", false, true);// don't remove : prevent IE6 cursor blinking

然后我记得的另一个修复是为身体设置一个固定的背景......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM