JS动画比CSS3动画性能谁更好?
之前一直以为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足够熟悉,以避免引入其他问题 其实这点差别在实际大部分使用情况下并木有卵区别……

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 클릭하면 플레이할 수 있는 GitHub의 오픈 소스 온라인 게임 10개를 요약했습니다. 대부분의 게임을 휴대폰에서 플레이할 수 있다는 점은 정말 멋지네요!

GitHub는 오픈 소스 및 개인 소프트웨어 프로젝트를 위한 호스팅 플랫폼으로, 개발자가 여기에서 자신의 코드를 호스팅하고 버전 제어를 수행할 수 있습니다. GitHub는 오픈소스 프로젝트와 협업에 중점을 두고 있습니다. 이 플랫폼의 오픈소스 프로젝트를 통해 개발자는 다른 개발자의 프로젝트 소스 코드를 보고 소통하고 학습할 수 있습니다.
![[요약] GitHub가 열리지 않는 원인과 해결 방법](https://img.php.cn/upload/article/000/000/068/64213a7378eaa534.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
GitHub는 매우 인기 있는 버전 제어 및 코드 호스팅 플랫폼입니다. 그러나 때로는 GitHub에 액세스할 수 없는 문제가 발생할 수 있습니다. GitHub는 글로벌 플랫폼이기 때문에 지리적 위치, 네트워크 상태, 웹사이트 설정 등의 요소에 영향을 받기 때문입니다. 이 기사에서는 GitHub를 열 수 없는 몇 가지 이유와 이러한 문제를 해결하는 방법을 소개합니다.

Microsoft가 Windows 11을 출시하면서 많은 변화가 생겼습니다. 변경 사항 중 하나는 사용자 인터페이스 애니메이션 수가 증가한 것입니다. 일부 사용자는 사물이 나타나는 방식을 변경하고 싶어하며 이를 수행할 방법을 찾아야 합니다. 애니메이션을 사용하면 더 좋고 사용자 친화적인 느낌이 듭니다. 애니메이션은 시각 효과를 사용하여 컴퓨터를 더욱 매력적이고 반응성이 뛰어나게 만듭니다. 그 중 일부는 몇 초 또는 몇 분 후에 슬라이딩 메뉴를 포함합니다. 컴퓨터에는 PC 성능에 영향을 미치고 속도를 저하시키며 작업을 방해할 수 있는 애니메이션이 많이 있습니다. 이 경우 애니메이션을 꺼야 합니다. 이 문서에서는 사용자가 PC에서 애니메이션 속도를 향상할 수 있는 몇 가지 방법을 소개합니다. 레지스트리 편집기나 실행하는 사용자 지정 파일을 사용하여 변경 사항을 적용할 수 있습니다. Windows 11에서 애니메이션을 개선하는 방법

CSS를 사용하여 요소의 회전 배경 이미지 애니메이션 효과를 구현하는 방법 배경 이미지 애니메이션 효과는 웹 페이지의 시각적 매력과 사용자 경험을 향상시킬 수 있습니다. 이 문서에서는 CSS를 사용하여 요소의 회전 배경 애니메이션 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 배경 이미지를 준비해야 합니다. 배경 이미지는 태양 사진이나 선풍기 등 원하는 사진이면 됩니다. 이미지를 저장하고 이름을 "bg.png"로 지정합니다. 다음으로, HTML 파일을 생성하고 파일에 div 요소를 추가하여 다음과 같이 설정합니다.

GitHub는 오픈 소스 커뮤니티 및 내부 엔터프라이즈 코드 관리에 널리 사용되는 Git 기반 코드 호스팅 플랫폼입니다. GitHub에서 프로젝트와 텍스트 문서를 업로드할 수 있지만, 지원하는 형식과 업로드 방법이 약간 다릅니다.

GitHub는 개발자 협업 및 버전 제어에 사용되는 인기 있는 코드 호스팅 플랫폼입니다. 개발자는 다른 개발자의 GitHub 저장소에서 특정 폴더의 콘텐츠만 다운로드해야 할 수도 있습니다. 이 기사에서는 전체 저장소를 다운로드하지 않고 GitHub 저장소의 폴더만 다운로드하는 방법을 보여줍니다.

이 기사는 Gitlab을 배우고, 보호된 브랜치를 설정하고 리더에게 PR을 제출하는 방법에 대해 설명합니다. 모든 사람에게 도움이 되기를 바랍니다.
