正如標題所說..有任何可能的方式有簡單的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