5

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

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

为了让事情更有趣,添加console.log()alert()通常足以让它按预期运行。这让我觉得 UI 层有一些未完成的东西。我试图将更多的样式设置包装在一个setTimeout(..., 0)这样的渲染中可以赶上,但这似乎没有帮助。

这是 IE 10 中的错误,还是我在演示脚本中遗漏了什么?

4

1 回答 1

1

alert()有效,因为它会阻止脚本执行。作为次要措施:触发重绘或重排的东西将是下一个最好的东西:

  • visibility:hidden/visible通过类属性更改切换
  • visibility:hidden/visible通过样式属性更改切换
  • 通过 CSSOM 添加样式表
  • 通过隐藏元素display:none
  • 计算offsetWidthoffsetHeight
  • 触发scroll事件
  • 在相关元素的兄弟上触发:hover伪类

参考

于 2014-06-20T02:01:55.803 回答