您现在的位置是:网站首页> 编程资料编程资料
浅析与CSS3的loading动画加载相关的transition优化
2021-09-05
809人已围观
简介 这篇文章主要介绍了浅析与CSS3的loading动画加载相关的transition优化,包括height等相关参数的调试方法分析,需要的朋友可以参考下
一、菊花
现在web技术不断发展,视图与数据渲染更多由前端呈现,后台更多与数据打交道。于是,我们会经常看到这样的交互场景。页面加载,看到一个框框里面有个菊花在转,然后内容呈现;或者点击个按钮,菊花在转,然后列表动态加载呈现。例如:
是不是没有任何问题?确实,功能上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参数可以不要,例如:
funTransitionHeight(element)
funTransitionHeight名字如果你不喜欢,可以自己改掉。IE9+有效,IE10+有动画,IE6~IE8老样子,所谓渐进增强。
百闻不如一见,您可以狠狠地点击这里:不定高度动态元素height CSS3 transition过渡demo
点击页面上“点击我”按钮,里面就有有高度不固定内容呈现,大伙儿就可以看到内容呈现时候不是砰砰砰了,而是
相关内容
- 详细介绍CSS中的伪选择器css3 伪类选择器快速复习小结
- 举例详解CSS中的选择器纯CSS实现的三列布局网页效果实例CSS层透明实现方法CSS数字列表实现方法
- CSS实现左图右文混排布局的方法div css图文混排列表设计中的基础问题总结CSS 网页图文混排的10个技巧CSS制作清爽绿色格调图文box通用样式css background-position 用法详细图文介绍只要十步就能学会用CSS建设网站 CSS建站的十个步骤(图文教程)什么是CSS Sprites(图片合并)技术 图文介绍各大浏览器 CSS3 和 HTML5 兼容速查表 图文
- CSS文章列表切换选项卡效果实例基于jquery+css3实现的Tabs带图形按钮选项卡切换纯CSS实现的非常漂亮的tab选项卡类似于黑板报的切换效果jQuery+css3实现的超酷无图片圆角tab选项卡切换效果CSS3+jQuery实现切换过程中带有动态滑动展示的选项卡Tab效果html+css+jquery模仿搜索风云榜选项卡效果有截图
- CSS控制文字在一条线中间的方法css实现中间文字两边横线效果
- 纯CSS实现的三列布局网页效果实例支持IE8的纯css3开发的响应式设计动画菜单教程布局和排版教程 纯css3实现图片三角形排列纯CSS无hacks的跨游览器自适应高度多列布局 推荐完全掌握纯CSS布局网页-CSS教程-网页制作-网页教学网
- CSS层透明实现方法关于css设置层透明CSS实现让文字半透明显示在图片上的方法css+filter实现简单的图片透明效果使用CSS3实现圆角,阴影,透明纯CSS3实现的背景透明迷人的联系表单特效 CSS如何只改变父元素背景透明度不改变子元素透明度让div透明而里面的文字不透明的写法css实现半透明效果基本原理css中filter:alpha透明度使用小结兼容IE、火狐
- CSS数字列表实现方法CSS解决无空格的字母、数字过长不自动换行的问题css实现数字分页效果css实现连续的英文或数字自动换行的方法css如何实现数字分页效果代码及步骤css3制作动态进度条以及附加jQuery百分比数字显示css 解决英文字符与阿位伯数字自动换行 CSS 数字和字母将容器撑大问题解决jquery+CSS3实现的数字时钟效果源码
- CSS利用1像素空缺实现圆角效果的方法使用CSS3实现圆角,阴影,透明CSS3实现圆角、阴影、透明效果并兼容各大浏览器纯CSS3实现圆角效果(含IE兼容解决方法)css3圆角边框和边框阴影示例CSS表格样式:圆角,隔行,变色的具体实现css教程制作css圆角边框(兼容全部浏览器)css3圆角样式分享自定义按钮样式css圆角样式制件代码示例(css设置圆角)纯CSS3实现的紫色性感华丽带有圆角效果的登录表单效果
- CSS实现让同一行文字和输入框对齐的方法CSS实现带箭头的提示框效果【示例代码】纯css实现输入框placeholder动效及输入校验CSS使用placeholder-shown伪类实现输入框浮动文字效果CSS实现输入框的周围高亮效果让边框发亮CSS实现 Google Material Design 文本输入框风格(推荐)