CSS的过渡属性transition能够仅经过CSS来实现简单的动画效果,同时它是一个简写属性,由transition-property、transition-duration、transition-timing-function和transition-delay复合而成。css
transition-property: all; // 默认为all,全部可被动画的属性都表现出过渡动画。
transition-property: none; // 没有动画效果
transition-property: width, height; //也能够取其余属性的值
复制代码
transition-duration: 1s;
transition-duration: 1ms;
transition-duration: 1s, 10s, 10ms; // 能够应用多个值,对应于transition-property的多个属性,表示每一个属性对应的延时时间
复制代码
transition-timing-function: cubic-bezier(n, n, n, n); // 在bezier 函数中自定义 0 ~ 1 之间的数值
transition-timing-function: ease; // 默认值,慢速开始,中间变快,慢速结束;至关于 cubic-bezier(0.25, 0.1, 0.25, 1)。
transition-timing-function: linear; // 匀速运动;至关于 cubic-bezier(0, 0, 1, 1)。
transition-timing-function: ease-in; // 慢速开始;至关于 cubic-bezier(0.42, 0, 1, 1)。
transition-timing-function: ease-out; // 慢速结束;至关于 cubic-bezier(0, 0, 0.58, 1)
transition-timing-function: ease-in-out; // 慢速开始,慢速结束;至关于 cubic-bezier(0.42, 0, 0.58, 1)
transition-timing-function: step-start;
transition-timing-function: step-end;
transition-timing-function: steps(4, end);
复制代码
transition-delay: 3s;
复制代码
transition是上面四个过渡属性的简写,其中只有transition-duration是必填属性。html
transition: all 5s linear .2s; // 以空格隔开属性
transition: all 5s linear .2s, height 3s ease-in-out; // 能够以逗号隔开多个过渡。
复制代码
transition通常在css中配合:hover, :active等伪类使用,实现相应等动画效果。bash
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
}
复制代码
相似上面这种简单的鼠标移到class=app的html元素上,会出现简单的动画。app
过渡分为两个阶段:前进(forward)和反向(reverse),下面会用具体的例子来详细讲述这两个阶段。函数
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
}
复制代码
.app {
width: 300px;
}
.app:hover {
width: 100;
transition: all 3s linear .2s;
}
复制代码
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
transition: all 1s linear .2s;
}
复制代码