返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何理解CSS3的loading动画加载相关的transition优化
  • 299
分享到

如何理解CSS3的loading动画加载相关的transition优化

2024-04-02 19:04:59 299人浏览 八月长安
摘要

这篇文章主要讲解了“如何理解css3的loading动画加载相关的transition优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解CSS3的l

这篇文章主要讲解了“如何理解css3的loading动画加载相关的transition优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解CSS3的loading动画加载相关的transition优化”吧!

一、菊花

现在WEB技术不断发展,视图与数据渲染更多由前端呈现,后台更多与数据打交道。于是,我们会经常看到这样的交互场景。页面加载,看到一个框框里面有个菊花在转,然后内容呈现;或者点击个按钮,菊花在转,然后列表动态加载呈现。例如:
如何理解CSS3的loading动画加载相关的transition优化

是不是没有任何问题?确实,功能上OK,有菊花,用户也愿意等。但是,大家有没有觉得所有交互,出现菊花→出现内容,都是“砰砰砰”很生硬的感觉,尤其当内容是动态,高度不确定的时候。我们使用一些比较好的手机APP(如微信)的时候一定不会有这样的感觉,整个交互流程都是很流畅的,就像山涧的泉水,涓涓细流到山脚,而不是巨人在峡谷走路的感觉。

所以,如果菊花的呈现到内容的展示能够通过自然的动画过渡呈现,势必会增强用户体验。

而动态内容呈现主要变化的关键因素就是——高度,而过渡效果最佳利器是CSS3 transition, 于是,脑中不禁疑问,是不是可以借助CSS3 transition实现动态内容的高度动画呈现,渐进增强用户体验。

其实,早在12年的时候,我就开始了这方面的尝试,若有兴趣可以查看此文:“更多|收起交互中渐进使用transition动画”。我自己也瞅了瞅,发现当年的我讲废话的本领甩了现在的我两条长安街。大家直接从Part5 看就好了。 其中,受限于当年略显稚嫩的技术,里面获得容器高度的方法,有些傻,大家就假装没看到。
二、CSS3 transition的难点

如果直接一行CSS代码就可以让动态呈现动画化,那就不需要本文了,早就各个站点都是这类优质体验的交互了。究其根本就是CSS3 transition的一个局限性,对"auto"*冷淡!嘛意思?

大家很好理解,所谓“过渡”,就是从一个地方到另外一个地方,比方说,从0到100. 但是,你来个从0到auto, 傻眼了吧。大学时看过一部美国科幻片《心灵传输者》,其中男主也不是想瞬间位移就瞬间位移的,也是需要知道目的地和路径的。

然而,当我们在一个div呈现动态内容的时候,由于我们并不知道里面的内容(都说了是动态的嘛),所以,我们的height其实都是auto,于是,就算transition: height .35s走起,也不会有动画效果的,我们需要的是固定值。

于是难点和关键点来了,如何赋予固定高度值?
三、固定高度值与transition触发

说白了很简单,当前高度固定值,获得动态内容载入后的高度固定值,再style设置,over~

代码细节我就不讲了,其实没什么人关心的,“我需要的是代码,代码!”估计很多人心里是这么咆哮的。

代码如下:

// 高度无缝动画方法
var funTransitionHeight = function(element, time) { // time, 数值,可缺省
   if (typeof window.getComputedStyle == "undefined") return;
   
   var height = window.getComputedStyle(element).height;
   element.style.height = "auto";
   var targetHeight = window.getComputedStyle(element).height;
   element.style.height = height;
   element.offsetWidth = element.offsetWidth;
   if (time) element.style.transition = "height "+ time +"ms";
   element.style.height = targetHeight;
};

十行出头点代码。

element就是容器元素;如果transition你是写在CSS中的,time参数可以不要,例如:

代码如下:

element { transition: height 250ms; overflow: hidden; }</p> <p>funTransitionHeight(element)

funTransitionHeight名字如果你不喜欢,可以自己改掉。IE9+有效,IE10+有动画,IE6~IE8老样子,所谓渐进增强。

百闻不如一见,您可以狠狠地点击这里:不定高度动态元素height CSS3 transition过渡demo

点击页面上“点击我”按钮,里面就有有高度不固定内容呈现,大伙儿就可以看到内容呈现时候不是砰砰砰了,而是歘歘歘~
如何理解CSS3的loading动画加载相关的transition优化

如何理解CSS3的loading动画加载相关的transition优化

如何调用?很简单,初始化时候funTransitionHeight()一下,赋个固定值;然后每次菊花完毕,内容载入后在funTransitionHeight()一下,动画就来啦。也就是说,相比你们以前的js代码,就多了一行funTransitionHeight(element)调用而已,是不是实用又低成本!

感谢各位的阅读,以上就是“如何理解CSS3的loading动画加载相关的transition优化”的内容了,经过本文的学习后,相信大家对如何理解CSS3的loading动画加载相关的transition优化这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何理解CSS3的loading动画加载相关的transition优化

本文链接: https://lsjlt.com/news/81976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何理解CSS3的loading动画加载相关的transition优化
    这篇文章主要讲解了“如何理解CSS3的loading动画加载相关的transition优化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解CSS3的l...
    99+
    2024-04-02
  • CSS3如何实现loading预加载动画特效
    小编给大家分享一下CSS3如何实现loading预加载动画特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!该loading特效...
    99+
    2024-04-02
  • 如何使用CSS3实现超炫的Loading动画效果
    今天小编给大家分享一下如何使用CSS3实现超炫的Loading动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,...
    99+
    2024-04-02
  • Android Bitmap的加载优化与Cache相关介绍
    一 . 高效加载 Bitmap BitMapFactory 提供了四类方法: decodeFile,decodeResource,decodeStream 和 decodeB...
    99+
    2022-06-06
    cache bitmap 优化 Android
  • 如何利用CSS3创建实用的加载动画效果
    这篇文章主要为大家展示了“如何利用CSS3创建实用的加载动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用CSS3创建实用的加载动画效果”这篇文章吧...
    99+
    2024-04-02
  • CMS与移动端:相爱相杀的微妙关系,如何化解?
    相辅相成: 触达广阔受众:移动端设备的普及让 CMS 触及更多的受众群体,扩展了网站或应用的影响范围。 实时更新:移动设备的推送功能使 CMS 能够向用户推送实时更新和提醒,提升用户参与度。 个性化体验:CMS 可以利用移动设备上的位置...
    99+
    2024-04-02
  • 二维码的加载速度如何优化?
    二维码是现代社会中广泛使用的一种快速识别技术。然而,用户在扫描二维码时,若加载速度过慢,会影响用户体验,甚至导致用户放弃扫描。因此,如何优化二维码的加载速度成为了一个值得研究的问题。 一、压缩二维码图片 在传输过程中,二维码图片的大小会影...
    99+
    2023-09-01
    二维码 load leetcode
  • Android项目中如何优化Bitmap的加载
    Android项目中如何优化Bitmap的加载?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一 . 高效加载 BitmapBitMapFactory 提供了四类方法: deco...
    99+
    2023-05-31
    android bitmap roi
  • 如何实现一个全屏的加载动画效果
    本篇内容主要讲解“如何实现一个全屏的加载动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现一个全屏的加载动画效果”吧!  这个效果的核心是让一个形状...
    99+
    2024-04-02
  • 如何理解Linux的文件系统及相关的挂载命令
    本篇内容介绍了“如何理解Linux的文件系统及相关的挂载命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux文件系统和windows...
    99+
    2023-06-12
  • 如何优化Java中的缓存加载算法?
    Java中的缓存加载算法是一个非常重要的话题,因为缓存可以提高程序的性能和响应速度。在本文中,我们将讨论如何优化Java中的缓存加载算法,以提高程序的性能和响应速度。 一、什么是缓存加载算法? 缓存加载算法是一种用于提高程序性能的技术,它通...
    99+
    2023-09-27
    load 缓存 编程算法
  • 如何优化 PHP 代码中的加载速度?
    PHP 是一种被广泛应用于 Web 开发的编程语言,但在实际开发中,我们经常会遇到 PHP 代码加载速度过慢的问题。这不仅会影响用户体验,也会影响网站的 SEO 排名。为了解决这个问题,本文将为您介绍如何优化 PHP 代码的加载速度。 开...
    99+
    2023-08-12
    编程算法 load laravel
  • 如何优化网站的页面加载速度
    优化网站页面加载速度涉及多个关键环节:1、优化图片和媒体文件、2、减少HTTP请求、3、启用缓存、4、使用CDN、5、压缩和合并CSS/JavaScript文件、6、减少服务器响应时间。优化图片和媒体文件能直接减少页面大小,进而提高加载速度...
    99+
    2023-10-29
    加载 速度 页面
  • 如何优化Python中HTTP对象的加载速度?
    Python是一种非常流行的编程语言,尤其在Web开发领域中,Python的应用非常广泛。在Web开发中,HTTP是一种非常常见的协议,HTTP对象的加载速度对于Web应用的性能至关重要。本文将介绍一些优化Python中HTTP对象的加载速...
    99+
    2023-09-28
    load http 对象
  • 如何在 Linux 上优化 Java IDE 的加载速度?
    Java IDE 在 Linux 上的加载速度一直是一个令人头痛的问题。本文将介绍如何在 Linux 上优化 Java IDE 的加载速度,以及如何使用一些技巧来提高 Java IDE 的性能。 一、优化 Java IDE 的加载速度 1....
    99+
    2023-09-09
    ide load linux
  • Hibernae的延迟加载如何理解
    今天给大家介绍一下Hibernae的延迟加载如何理解。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。Hibernae 的延迟加载是一个非常常用的技术,实体的集合...
    99+
    2023-06-17
  • Go编程中的算法:如何优化路径加载?
    在Go编程中,优化路径加载算法是一个重要的话题。在许多应用程序中,路径加载是一个常见的操作,这可能会对程序的性能产生重大影响。因此,优化路径加载算法是至关重要的。 在本文中,我们将探讨一些优化路径加载算法的技术,以及如何使用Go编程语言来实...
    99+
    2023-10-09
    编程算法 load path
  • 如何在Java中优化JavaScript和NumPy的加载速度?
    Java是一种非常流行的编程语言,而JavaScript和NumPy也是很常用的工具。然而,有时候在使用Java时,JavaScript和NumPy的加载速度可能会变得很慢,这会影响到程序的性能和用户的体验。在本文中,我们将探讨如何在Jav...
    99+
    2023-10-18
    load javascript numpy
  • 如何在Linux系统中优化PHP的加载速度?
    在Linux系统中,PHP作为一种广泛使用的编程语言,其加载速度对于网站的性能和用户体验来说至关重要。在本文中,我们将讨论如何优化PHP的加载速度,以提高网站的性能和用户体验。 一、使用最新版本的PHP 首先,使用最新版本的PHP是优化加载...
    99+
    2023-11-04
    load linux linux
  • 如何使用纯CSS实现的win8开机加载的动画特效
    这篇文章主要介绍如何使用纯CSS实现的win8开机加载的动画特效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现的代码。html代码:<div class="wra...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作