掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能

网页动画可以显着改善用户体验,但如果实施不仔细,也会影响网站性能。在本文中,我将比较三种不同的方法来对大小脉冲的圆形元素进行动画处理。我将使用 css、未优化的 javascript 和优化的 javascript,并向您展示如何使用 chrome devtools 衡量它们的性能。

网页动画简介

动画是现代网页设计的关键部分。它们可以使用各种方法来实现,最常见的是使用纯 CSS 或 JavaScript。然而,并非每种方法都表现得同样好。为了证明这一点,我决定测试三种不同的方法:

使用 CSS 创建的动画。使用 JavaScript 的未优化动画。使用 JavaScript 和 requestAnimationFrame 优化动画。

设置项目

该项目可在 GitHub 上获取。您可以轻松下载并试用。

git 克隆 https://github.com/TomasDevs/animation-performance-test.git
cd 动画性能测试

下载后,检查文件夹 css-animationjs-animation-optimizedjs-animation-unoptimized

在 GitHub 上尝试该项目

立即学习“Java免费学习笔记(深入)”;

衡量绩效

为了测量性能,我使用了 Chrome DevTools 的性能面板。每个动画运行 10 秒。

绩效结果与分析

CSS动画

掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能来源:由 TomasDevs 创建 (2024)

总阻塞时间: 390 毫秒

备注:
CSS 动画往往表现更好,因为它们被卸载到浏览器的本机渲染引擎,特别是在使用变换或不透明度等属性时。该动画非常高效,对脚本和渲染时间的影响极小。

优化的 JavaScript 动画

掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能来源:由 TomasDevs 创建 (2024)

总阻塞时间: 400 毫秒

备注:
优化的 JS 版本使用 requestAnimationFrame 和平滑的正弦波函数来管理动画。虽然它比 CSS 动画需要更多的脚本编写时间,但它仍然运行得相当高效,并保持较低的渲染和绘制时间。

未优化的 JavaScript 动画

掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能来源:由 TomasDevs 创建 (2024)

总阻塞时间: 440 毫秒

备注:
未优化的 JS 版本使用简单的循环,没有考虑时序进展。由于动画每一帧的计算效率低下,这会导致脚本、渲染和绘画时间更长。

结论

CSS 动画 对于简单动画来说总体来说效率最高。它们受益于浏览器的硬件加速并减少主线程的负载。优化的 JavaScript 动画紧随其后。当您需要对动画进行更多动态控制时,使用 requestAnimationFrame 进行优化对于确保流畅的性能至关重要。未优化的 JavaScript 动画表现最差,因为它们由于计算效率低下而给浏览器的渲染引擎带来不必要的压力。

加入讨论

您在优化网页动画方面有哪些经验?您还有其他提高性能的提示或技巧吗?请在下面的评论中告诉我!

以上就是掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2854125.html

(0)
上一篇 2025年3月10日 14:46:13
下一篇 2025年3月8日 18:04:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 仅使用 CSS 实时测试 HTML 和 CSS 的实用方法

    最近,我公开了一个我为创建放射状设计而开发的 CSS 框架。在开发过程中,我遇到了一些挑战,包括测试不同的功能。我注意到 CSS linter 和其他工具不允许我了解为什么某些东西不起作用,即使没有基本错误。另一个典型的 CSS 问题是如何…

    2025年3月10日
    200
  • React 中的 CSS 冲突

    ui 是我们开始输入逻辑以完成前端之前的第一步。因此,我们编写标记,然后编写获得所需用户界面所需的基本样式。在编写标记时,我们必须创建有意义的类名来寻址和访问 html 标记并向其添加样式。通过简单的用户界面和不同的标签,我们可以或多或少轻…

    2025年3月10日 编程技术
    200
  • 免费 Vanilla CSS 模板的最佳网站

    这是最好的网站的综述,您可以在其中找到并下载免费的 css 模板。我们专注于不使用任何框架的普通 css 模板。这些高质量的项目将为您的网站、登陆页面、博客和作品集提供支持。 在线空间中有许多模板创建者。以下是让下面提到的这些人脱颖而出的原…

    2025年3月10日 编程技术
    200
  • 《Insect Particlizer》像素操作与 CSS 结合的实验

    canvas..多么美丽的名字,并不能表达我对这个api的喜爱程度,虽然一开始对我来说很糟糕,但经过一些尝试和错误,我理解了它,甚至尝试用它创建不常见的东西这让我的 ide 崩溃了好几次。这里的这个实验只是我在前端之旅中经常做的无数实验之一…

    2025年3月10日
    200
  • 我如何编写 CSS 选择器

    CSS 方法有很多,但我都讨厌它们。有些多(顺风等),有些少(BEM、OOCSS 等)。但归根结底,它们都有缺陷。 当然,人们使用这些方法有充分的理由,并且解决的许多问题我也遇到过。因此,在这篇文章中,我想写下我自己的关于如何保持 CSS …

    2025年3月10日
    200
  • CSSseudo-Classes and Pseudo-Elements: An In-Depth Look

    简介 嘿,了不起的人们。今天,我们将深入研究 css 中的伪类和伪元素的世界。这些是我们 css 工具包中的强大工具,可以帮助我们以独特的方式定位和设计元素,使我们的工作更加高效,使我们的网页更加动态。 我们将从基础知识开始,了解什么是伪类…

    2025年3月10日
    200
  • CSS 布局 – 浮动、Flexbox 和网格

    第 5 讲:css 布局 – 浮动、flexbox 和网格 在本次讲座中,我们将深入探讨在 css 中创建布局的基本技术。了解如何使用浮动、flexbox 和网格构建内容将使您能够构建响应灵敏且组织良好的网站。在本讲座结束时,您…

    2025年3月10日
    200
  • 降低性能的两行 CSS(fps 到 ps)

    我最近发布了 learn wc,如果您看过它,您可能已经注意到背景中的动画,其中彩色圆圈在屏幕上对角移动。看起来像这样: 它在 chrome 和 safari 上运行良好,但我注意到 firefox 上的性能严重下降。 性能太差了,我直接在…

    2025年3月10日 编程技术
    200
  • 如何设置独立 CLI:在 Shopify 中使用 Tailwind CSS,而不使用 Nodejs

    依赖关系 Shopify CLI:一种命令行界面工具,可帮助您开发和管理 Shopify 主题。TailwindCSS:实用程序优先的 CSS 框架,用于快速构建自定义设计。 设置 我们使用 Tailwind 作为独立的 CLI 工具。更多…

    2025年3月10日
    200
  • 建立一个登录表单网站

    介绍 开发者们大家好!我很高兴分享我的最新项目:登录表单。该项目非常适合那些希望构建一个干净且功能齐全的登录界面的人,用户可以使用该界面来验证自己的身份。这是使用 html、css 和 javascript 增强前端开发技能的好方法,同时创…

    2025年3月10日
    200

发表回复

登录后才能评论