正如标题所说..有任何可能的方式有简单的JavaScript动画,而不使用jQuery,setTimeout的,和setInterval的。我一直在研究太久,找不到任何东西。可能没有办法做到这一点,只是想知道。寻找跨浏览器的东西,所以CSS动画也无法工作。JavaScript动画WITHOUT jQuery的/的setTimeout/setInterval的
回答
现在做大多数动画的“正确”方式是window.requestAnimationFrame
,它的作用类似于setTimeout
,因为它在指定的时间运行回调函数。
它的优化,在60fps运行,在某些浏览器(FF),它会给你毫秒的确切数量,直到下一个平局,这样就可以非常精确地计算动画位置。
谷歌“requestAnimationFrame垫片”对于各种跨浏览器实现对旧的浏览器。垫片全部使用setTimeout
—这是没有办法解决的。
这是我在寻找的!谢谢! – ALF
'window.requestAnimationFrame'只适用于某些浏览器(例如,在IE10之前没有IE版本,在5.3之前没有Safari版本,等等)。详情请参阅http://www.caniuse.com/#search=requestanimationFrame。而且,旧版浏览器的解决方法都使用'setTimeout()'或'setInterval()',所以没有办法。所以,如果你需要它在没有定时器的浏览器上工作,这个答案不能解决这个问题(因为没有解决方案)。 – jfriend00
@ jfriend00 - 这不就是我在最后一句话中所说的吗? :) –
不,你怎么能没有间隔/超时,并能够跨浏览器做到这一点?你需要继续触发它。
除非你在用户输入上设置动画。如果您在用户触发鼠标移动事件或页面滚动事件时设置了某些动画,它可能会有效,但它会停下来,并且100%依赖于用户触发它。
不,我不认为这是做在JavaScript中的暂停,而无需使用setTimeout()
或setInterval()
的任何方式。
我能想到的唯一的办法是到了JavaScript等待像一个XMLHttpRequest对象的反应,这是超越荒谬的一些事件。
如果您正在寻找一些方便的“暂停执行(x)毫秒并继续”,如在Unix系统上的Thread.sleep()
或Unix系统上的usleep()
,则不会有这样的事情可悲。
我记得听说为了计时的目的,在一个运行在Google Sketchup上的Ruby脚本中,有人花费了一段时间制作一个隐藏的HTML窗口,只是为了运行一个使用setInterval()
的JavaScript,所以他们会有一个计时机制。我认为如果你为了运行JavaScript而仍然使用setInterval()
,那么可能没有其他选择。
- 1. CGContextDrawImage without Transaction动画
- 2. Vanilla JavaScript .closest without jQuery
- 3. 没有jQuery的动画JavaScript?
- 4. jQuery的平滑/ JavaScript动画
- 5. 没有jQuery的Javascript动画
- 6. 动画类与JavaScript/jQuery的
- 7. jquery/Javascript动画
- 8. Javascript/jQuery动画
- 9. Javascript/jquery动画
- 10. 的Javascript/jQuery的添加动画的replaceChild
- 11. HTML canvas Javascript mouse event,without jQuery
- 12. Javascript/jQuery的动态高度动画?
- 13. jQuery的/ JavaScript的文字动画
- 14. jQuery或Javascript动画
- 15. 的Javascript动画
- 16. javascript css without frameworks
- 17. jQuery的动画
- 18. jQuery的动画
- 19. JQuery的动画
- 20. jQuery的动画
- 21. jQuery的动画
- 22. jQuery的动画
- 23. jQuery的动画
- 24. jQuery的动画
- 25. jQuery的动画()
- 26. jQuery的动画
- 27. 在纯javascript中的jquery动画效果
- 28. 使用jquery的动画滑块/ javascript
- 29. 使用jQuery的SVG路径动画/ javascript
- 30. 没有jQuery的Javascript翻页动画
有一个关键的问题丢失了:为什么'setTimeout()'和'setInterval()'是你的问题? – Amadan
为什么你甚至想要做一个没有jQuery的动画?这可能是触摸DOM的最佳/最快/最安全的方式。 – frenchie
您可以使用动画GIF - 在所有浏览器中都支持,并且完全不需要任何JavaScript。 – RobG