浅析与CSS3的loading动画加载相关的transition优化

2020-05-14 07:21:53易采站长站整理
// 高度无缝动画方法
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

点击页面上“点击我”按钮,里面就有有高度不固定内容呈现,大伙儿就可以看到内容呈现时候不是砰砰砰了,而是歘歘歘~
2015518174913392.png (267×174)

2015518174933487.gif (526×391)

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