css3怎么实现高度从固定到自动的过渡动画

html-css027

css3怎么实现高度从固定到自动的过渡动画,第1张

.div{

height:200px

-webkit-transition:all 0.5s ease

-moz-transition:all 0.5s ease

-ms-transition:all 0.5s ease

-o-transition:all 0.5s ease

transition:all 0.5s ease

}

.div:hover{

height:auto

}

不知你的触发条件是什么,目前此动画在鼠标移入时触发

需求是有一些动态内容折叠起来的,点击后弹开

js定时器的动画过渡暂不考虑,于是就想到transition过渡

一开始就想着用trasition动画过渡就搞定啦,试了一下后,发现有问题

折叠的元素的高度height必须得设置一个值才可以有过渡的效果,要不就过渡不了

折中一下,就用js动态获取子元素的高度,然后给值到折叠的元素上实现过渡了

不过需要注意的是,内容的元素,虽然平常是不显示,但是还是暂据文本流的空间,所以缩起来后,要设置{visibility:hidden}.

打开时再设置{visibility:visible}

过渡是一种动画,是从一种状态过渡到另一种状态,在过渡前,浏览器会计算页面的新页面结构以及完成重绘,过渡会自动双向运行,因此只要状态一反转,反向动画就会被运行。

如果我们不希望所有的元素属性受到影响,只希望作用到 box-shadow, transform ,那么可以改写为:

在指定带前缀的属性时, transition-property 本身也需要加上前缀。比如: transition: transform.25s 针对旧的版本,也就是WebKit浏览器,需要写成 -webkit-transition: -webkit-transform .25s ,即属性和作为值的属性均需要加上前缀,否则在旧版本的浏览器不起作用。