目次
回复内容:

JS动画比CSS3动画性能谁更好?

Jun 07, 2016 am 08:44 AM
animation github velocity

之前一直以为css3的才是最厉害的,但是最近做HTML5页面发现在微信上的效果不是太好。
最近发现的github上比较火的velocity.js,作者宣称要做DOM动画方面的领导者,完全颠覆了我的认识啊。

相关链接:
CSS vs. JS Animation: Which is Faster?

回复内容:

稍微做过一点点 Web App,目前深陷在 Android Webview 里不能自拔,来谈一点看法。

1. 在现代PC 浏览器上,CSS3 Animation 和 Transition 好写好用,流畅丝滑,而且动画过程0 GC。当然js 控制DOM动画如果控制好了,不要频繁reflow,动画也流畅。

2. 在 iOS Safari 上,CSS3 动画和js动画都容易搞流畅,只要别reflow。

3. 在 iOS Webview 上,不能用jit,js性能下降严重,如果CSS3动画能解决还是别用js。某个版本iOS之后这个限制解除了好像,不太了解。

4. 低版本 Android 用的是很老的 Webkit,没有硬件加速,CSS3支持不完全,2d Canvas有bug,性能比chrome 差老远了,如果动画复杂又大块,DOM树复杂,还用了box-shadow 之类很耗性能的样式,很难做流畅。

这种情况请考虑 Chrome on Android,或者crosswalk。

5. Android 4.4 以后,系统自带chromium,体验能做到与iOS safari不相上下。

====

另外多提一句GC。

GC 你听过吧?如果不用CSS3 Animation 和 Transition,就要用 requestAnimationFrame() 。在动画的过程中会不断调用js,消耗内存,一段时间之后触发GC,如果GC时间超出frame budget,动画会卡顿。

如果非要用js动画,那么也请考虑使用无reflow 的 transform属性,加上 translateZ(0) 强制指定硬件加速。 JS 动画也是通过更改 CSS 实现的。

而且从设计的角度来说,CSS 本身就是设计用来表现样式,JS 控制逻辑。JS 动画是 CSS3 出现之前的曲线救国。

个人觉得,简单的动画还是用 CSS 做,特别复杂的再用 JS。

codepen 上面的趋势是去 JS 化,动画一律用 CSS 实现。借助 LESS 等预编译语言可以做出很复杂的动画。

性能的话,短期手机浏览器可能对 CSS3 支持不太好,但长期一定是会优于 JS 的。 其实这个。。。。。看引擎的。。。。
chrome上css3明显流畅过js,IE11上的js动画如丝般顺滑。。。。 动画的性能的关键,不在于js执行的效率,而在于dom结构。所以css原生动画,与js动画并不会相差太大。
优化动画性能,就要减轻dom,使用合理的定位方式,等等。 这种对比应该还是要来个例子。
这是前几天我翻译一篇文章时看到的对比Building Great Mobile Menus (为你的网站创建移动菜单)
对了,我的翻译只是为了自己总结学习,有精简很多。。建议看原文=-=
不是涉及复杂的计算,css明显快,但是涉及到复杂的计算,比如点是不确定的,你还是要用js。

其实这种对比个人感觉没什么意义(可能是我水),在项目中, 大多数情况下-0-你都要用js来计算。 js+canvas(html5)+水平>css3>js+dom 就说一点,JS动画比CSS3动画有控制,且没有兼容性问题 从原理上来说的话
CSS == iOS
JS == Android

(以20马赫快速逃跑中 个人项目体会:
在没有RAF时,css方式流畅度占优。
有RAF后两者相当。


js方式要求开发人员对js足够熟悉,以避免引入其他问题 其实这点差别在实际大部分使用情况下并木有卵区别……
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GitHub プロジェクト共有: ワンクリックでプレイできる 10 のオープンソース オンライン ゲーム GitHub プロジェクト共有: ワンクリックでプレイできる 10 のオープンソース オンライン ゲーム Mar 24, 2023 pm 07:15 PM

この記事では、クリックするだけでプレイできる GitHub 上のオープンソース オンライン ゲーム 10 個をまとめています。ほとんどのゲームは携帯電話でもプレイできるので、とても便利です。

Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Apr 24, 2023 pm 04:55 PM

Microsoft が Windows 11 を発表したとき、多くの変化がもたらされました。変更点の 1 つは、ユーザー インターフェイスのアニメーションの数が増加したことです。一部のユーザーは表示方法を変更したいと考えており、その方法を見つける必要があります。アニメーションがあると、より快適でユーザーフレンドリーな印象になります。アニメーションは視覚効果を使用して、コンピュータをより魅力的に見せ、応答性を高めます。それらの中には、数秒または数分後にスライド メニューが表示されるものもあります。コンピュータには、PC のパフォーマンスに影響を与え、速度を低下させ、作業を妨げる可能性のあるアニメーションが数多くあります。この場合、アニメーションをオフにする必要があります。この記事では、PC 上でアニメーションの速度を向上させるいくつかの方法を紹介します。レジストリ エディターまたは実行するカスタム ファイルを使用して変更を適用できます。 Windows 11 でアニメーションを改善する方法

【まとめ】GitHubが開かない原因と解決策 【まとめ】GitHubが開かない原因と解決策 Mar 27, 2023 am 11:33 AM

GitHub は、非常に人気のあるバージョン管理およびコード ホスティング プラットフォームです。ただし、GitHub にアクセスできないという問題が発生する場合があります。これは、GitHub がグローバル プラットフォームであり、地理的位置、ネットワーク状態、Web サイト設定などの要因の影響を受けるためです。この記事では、GitHubが開けない原因とその解決方法を紹介します。

CSS を使用して要素の背景の回転アニメーション効果を実現する方法 CSS を使用して要素の背景の回転アニメーション効果を実現する方法 Nov 21, 2023 am 09:05 AM

CSS を使用して要素の回転背景画像アニメーション効果を実装する方法 背景画像アニメーション効果は、Web ページの視覚的な魅力とユーザー エクスペリエンスを向上させることができます。この記事では、CSS を使用して要素の背景の回転アニメーション効果を実現する方法を紹介し、具体的なコード例を示します。まず、背景画像を用意します。太陽や扇風機など、好きな画像を使用できます。画像を「bg.png」という名前で保存します。次に、HTML ファイルを作成し、ファイルに div 要素を追加して、次のように設定します。

Github にプロジェクトとテキストドキュメントをアップロードする方法について話しましょう Github にプロジェクトとテキストドキュメントをアップロードする方法について話しましょう Mar 27, 2023 am 10:53 AM

GitHub は、オープンソース コミュニティや企業内部のコード管理で広く使用されている Git ベースのコード ホスティング プラットフォームです。 GitHub ではプロジェクトやテキスト ドキュメントをアップロードできますが、サポートされている形式とアップロード方法が若干異なります。

Githubで1つのフォルダーの内容のみをダウンロードする方法 Githubで1つのフォルダーの内容のみをダウンロードする方法 Mar 27, 2023 am 10:53 AM

GitHub は、開発者のコ​​ラボレーションとバージョン管理に使用される人気のあるコード ホスティング プラットフォームです。開発者は、別の開発者の GitHub リポジトリから特定のフォルダーのコンテンツのみをダウンロードする必要がある場合があります。この記事では、リポジトリ全体をダウンロードせずに、GitHub リポジトリ内のフォルダーのみをダウンロードする方法を説明します。

GitHub リポジトリ内のフォルダーを削除する方法について説明します。 GitHub リポジトリ内のフォルダーを削除する方法について説明します。 Mar 27, 2023 am 11:33 AM

GitHub は、ユーザーがコード ベースをインターネット上に保存して共有できるようにする、非常に人気のあるバージョン管理システムです。プログラマーにとって必須のツールの 1 つです。ただし、GitHub リポジトリ内のフォルダーを削除する必要がある場合があります。この記事では、GitHubリポジトリ内のフォルダーを削除する方法を紹介します。

Gitlab で保護されたブランチをセットアップして PR を送信する方法について話しましょう Gitlab で保護されたブランチをセットアップして PR を送信する方法について話しましょう Mar 30, 2023 pm 09:01 PM

この記事は Gitlab の学習についてであり、保護されたブランチを設定してリーダーに PR を送信する方法について説明しています。

See all articles