5

在尝试CSS转换时,我创建了一个小滚动演示,它将right css样式从某个负数转换为0,然后在触发transitionend事件以获得无限滚动效果时重新启动。这里是我的演示小提琴 - http://jsfiddle.net/XhFdv/在Internet Explorer 10中重置css转换

这适用于最新的FF,Chrome,Safari(win)和Opera。在IE 10中(在Win 7和Win 8上都测试过),事件触发,但尝试将正确的属性设置回负数,它开始时似乎不起作用 - 它在设置后通常保持为0(但不是总是)。

为了让事情更具娱乐性,添加console.log()alert()通常足以使其按预期运行。这让我觉得UI层没有完成。我试图在setTimeout(..., 0)中包装更多的样式设置,以便渲染可以追上,但这似乎没有帮助。

这是IE 10中的错误,还是在演示脚本中缺少某些东西?

+0

我见过这类错误之前,他们是绝对是一个痛。通常超时工作,但我猜不是在这种情况下。我明天有时间提琴,所以我会在这方面回复你。非常奇特! – 2013-03-12 05:08:58

+0

我增加了setTimeout延迟达10-20毫秒,它只适用于我。 – 2013-12-19 15:48:31

+2

几个月前,我向微软提交了一个错误。我相信他们能够重现该问题,并将其作为下一个主要版本之一修复的候选错误。不幸的是,我没有进入IE 11。 – mld 2013-12-19 19:59:10

回答

1

alert()可以工作,因为它会阻止脚本执行。作为辅助措施:一些触发重绘或回流将是下一个最好的事情:

  • 切换visibility:hidden/visible通过类属性通过改变风格
  • 切换visibility:hidden/visible属性更改
  • 通过添加样式表CSSOM
  • 经由display:none
  • 计算offsetWidthoffsetHeight
  • Tr的隐藏的元件iggering一个scroll事件
  • 所讨论的元素的同级触发一个:hover伪类

参考