【论道】前端动画总结

news/2025/10/31 19:34:16/文章来源:https://www.cnblogs.com/hjk1124/p/19181110

楼高望不见,尽日栏杆头。—— 《西洲曲》

最近在做某项目首页,甲方要求要有动效,不得不捡起当年在AI部练就的css技能,索性做个总结,以便归纳自己在交互与动效的经验。

前端岗是用户与产品的一道桥梁,既是UI在html层面的实现,也是产品经理用以满足客户需求与期待的手段,这就要求必须要有一定的审美,个人认为不论是在写界面或者在写程序,首先要让结果在自己面前过得去,所谓一屋不扫何以扫天下?

在互联网世界,想要自己的产品在诸多产品中脱颖而出,除去产品本身特点以外,也要在交互方面耍一些心机,因为随着计算机软硬件的发展,用户会越来越挑剔,这在某种意义上,也会倒逼前端学习一些产品思维以及ui设计,这里最重要的就是人机交互,而动画就是前端实现人机交互最核心的支撑。

一句话总结:动画的本质是一个或者多个dom元素的某些css属性随着时间或者用户某些动作而进行的一些变化过程。当连续出现的静态图像速度超过每秒24帧时,人眼就会认为它是运动的,而动画所展示的过程也就是人机交互的结果。

根据实现技术的不同,前端动画又分为css动画技术和js动画技术

根据精确度的不同,前端动画分为简单动画和复杂动画(关键帧)

本文既是一篇技术总结,也是一篇自己单枪匹马写交互的心得

简单动画包括缩放、位移、旋转,以及dom自身属性的一些变化,重点的是transition属性。

复杂动画指的是在在单位运动时间内某一阶段的精细化动效配置,比如百分比时间下对某些元素的css属性状态的改动,关键属性是animation,这里要注意animation-play-state: paused;属性,在某些状态【点击、经过】时可修改对整个动画状态。

但是如果一个项目全有动效就会好吗?并不是。

1.过多动画会显著消耗内存,从而导致电脑卡顿。
而某些布局属性cpu计算会触发重绘(也可以理解成掀桌子重新洗牌然后重新发牌)。
某些非布局属性等需要硬件加速的属性则会触发重排(不掀桌子,不重新洗牌,只重新发牌)
2. 人的专注力是有限的,做动效的目的是为了优化用户体验,而不是加重用户理解/认知, 个人认为在单位时间内专注一个有动效的焦点区域是最有益的。

想要用好这项技能,关键点在于希望用户的专注点在哪里,重点在于给自己树立一个理念:用户来到了我的国,他受我引导,我给用户展示的是我希望给用户展示的,尤其是在细微方面更应让用户体会到我对其的关注。

也许某月会写一篇关于flip的文章(埋坑警告)。

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/952155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件构建,藏在细节里的“工程思维”

如果说编程入门时,我学的是“如何写出一行能执行的代码”,那《代码大全2》教会我的,就是“如何用工程思维构建一个可靠的软件系统”。这本书厚达千页,却没有一句废话,从需求分析到代码调试,从团队协作到项目维护…

从“会编码”到“懂开发”,一场开发者的认知升级

在编程这条路上,我曾以为“技术栈越新、代码写得越快”就是优秀开发者的标准。直到读完《代码大全2》,才发现自己一直停留在“会编码”的层面,而这本书,恰好为我打开了“懂开发”的大门。它不只是一本编码技巧手册…

Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程

Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程​ 一款 ​Mac 专用​ 的视频下载工具,支持从 ​YouTube、抖音、B站、Facebook 等主流平台​ 高速下载视频、音频,还能下载 ​4…

《代码大全》的读后感

在软件开发领域摸爬滚打三年后,我曾陷入一种 “技能停滞” 的困境 —— 能熟练使用主流框架实现需求,却总在项目迭代中频繁遭遇代码臃肿、bug 频发的问题,始终无法突破 “合格开发者” 到 “优秀开发者” 的壁垒。直…

把coarse粗调音高转换成频率的数学公式

把coarse粗调音高转换成频率的数学公式频率倍数 = 2^(coarse/12)

思科vManage漏洞分析:四漏洞链实现未授权远程代码执行

本文详细分析了Cisco Viptela vManage中的四个安全漏洞,包括SSRF+任意文件写入、未授权文件读取+目录遍历、命令注入和权限提升漏洞,攻击者可通过组合利用这些漏洞实现未授权的远程代码执行并获取root权限。SD-PWN —…

Java流程控制练习——打印三角形及debug调试

Java流程控制练习——打印三角形及debug调试练习————用*号打印三角形 public class test_demo {static void main(String[] args) {//打印一个5行的三角形for (int i = 1; i <=5; i++) {for (int j = 5; j>…

CH585驱动CH271播放音频

前言: 本文提供CH585通过双路PWM驱动271芯片,进而实现驱动音频。相较单路PWM,优点在于不需要调节RC电路,且外围简单。 操作指令: ①通过ffmpeg命令行工具将wav格式文件转换为sbc格式文件,转换成的文件需手动将.s…

10.31 —— (VP)2023icpc济南

这把打得中规中矩,前期一道签到题出得有点慢了;最后一道铜牌题关键思路是对的,但还是做法有问题超时了。 \(D\) 纯签到 \(J\):每一次考虑排好一整个前缀,那么每次操作至少会让前缀长度加 \(2\),只需要选择 当前已…

MIM + PEFT + MLP + Q

零样本学习------稳健的语义特征能力----富含语义信息的训练数据集----使用SOS数据集(主要关注语义重要区域内的低频特征) 密集预测任务-----处理高频细节--------擅长密集预测的与训练模型----使用COS模型(善于识别…

《程序员修炼之道 - 从小工到专家》阅读笔记2

3 石头汤与煮青蛙 两个方面,一还是软件的熵当中的含义,喜欢书里面的这段话:大多数的项目的拖 延都是一天一天发生的,系统一个特性一个特性的偏离其规范.一个又一个的补丁被打 到某段代码上,直到最初的代码一点没有留下…

《程序员修炼之道 - 从小工到专家》阅读笔记3

5 你的知识资产 关于学习的一个章节,提到了不少如何学习,把学习知识作为投资一样看待,分析的也 很在理.自认为在这方面还是赶上了书中的要求,不然也不会看到这本书了_,学习是 一个过程,不会有立杆见影的效果,当然我们不…

《程序员修炼之道 - 从小工到专家》阅读笔记1

1.我的源码让猫给吃了 不要寻找借口,从自身找原因 2.软件的熵 一句话:不以善小而不为,勿以恶小而为之. 从初期就要做好规范,不要因为是poc这样的前提而放松对代码的规范,现在的项目就有这种问题,初期的时候有人认为(自…

Java流程控制——break,continue,goto

Java流程控制——break,continue,gotobreak,continue语句在任何循环语句的主体部分,都可以使用break语句控制循环流程。 break用于强制退出循环,不执行循环中剩余的语句。(在switch中也使用) continue语句用于在循…

读《代码大全2》第三部分有感

《代码大全2》第三部分“变量”,看似聚焦于软件开发中最基础的“变量”概念,却以极致的细节与深度,打破了我对“变量只是存储数据的容器”的浅层认知。这部分从变量使用的常规问题、命名规则,到基本与不常见数据类…

A History of Large Language Models阅读心得(1)

https://gregorygundersen.com/blog/2025/10/01/large-language-models/ 为什么要word embedding? 如果不对词汇进行embedding,而是直接基于词语去统计自然语言数据的话,会出现数据稀疏的问题(data sparsity)。因为…

20232324 2025-2026-1 《网络与系统攻防技术》实验四实验报告

20232324 2025-2026-1 《网络与系统攻防技术》实验四实验报告1.实验内容 1.1实验目标通过实操掌握恶意代码分析、逆向工程及网络取证的核心方法,理解恶意代码的特性、反分析技术与攻击逻辑,明晰僵尸网络机制及 IRC 协…

【Python 基础】第 2 期:环境搭建

在开始编写 Python 代码前,还需要搭建 Python 的开发环境。电脑是没办法直接读懂 Python 代码的,而是需要一个解释器,实时把代码翻译成字节码,字节码再转换成 0 和 1,电脑就能读懂了。 Python 的运行过程就是翻译…

revit api 对话框taskdialog 和maindialog

revit api 对话框taskdialog 和maindialogpublic Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,ref string message, Autodesk.Revit.DB.ElementSet elements) {Application app = commandData.…

YOLO算法原理详解系列 第001期-YOLOv1 算法原理详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …