body {
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab)
background-size: 400% 400%
animation: gradient 15s ease infinite
height: 100vh
}
@keyframes gradient {
0% {
background-position: 0% 50%
}
50% {
background-position: 100% 50%
}
100% {
background-position: 0% 50%
}
}
2.浮动动画效果
div {
box-shadow: 0 5px 15px 0px rgba(0,0,0,0.6)
transform: translatey(0px)
animation: float 6s ease-in-out infinite
}
@keyframes float {
0% {
box-shadow: 0 5px 15px 0px rgba(0,0,0,0.6)
transform: translatey(0px)
}
50% {
box-shadow: 0 25px 15px 0px rgba(0,0,0,0.2)
transform: translatey(-20px)
}
100% {
box-shadow: 0 5px 15px 0px rgba(0,0,0,0.6)
transform: translatey(0px)
}
}
创建动画序列,需要使用animation属性或其子属性,该属性允许配置动画时间、时长以及其他动画细节,但该属性不能配置动画的实际表现,动画的实际表现是由 @keyframes规则实现,具体情况参见使用keyframes定义动画序列小节部分。transition也可实现动画。transition强调过渡,是元素的一个或多个属性发生变化时产生的过渡效果,同一个元素通过两个不同的途径获取样式,而第二个途径当某种改变发生(如hover)时才能获取样式,这样就会产生过渡动画。
感觉自己总是混淆css各种动画效果,所以再这里总结一下
1. transition ,所在元素块样式变动时启动,可用于样式变动时 产生过渡动画效果
| transition-property | 规定设置过渡效果的 CSS 属性的名称。 |
| transition-duration | 规定完成过渡效果需要多少秒或毫秒。 |
| transition-timing-function | 规定速度效果的速度曲线。 |
| transition-delay | 定义过渡效果何时开始。 |
2. tranform :用于平移,旋转,缩放,透视
语法
animation-name 规定需要绑定到选择器的 keyframe 名称。
animation-duration规定完成动画所花费的时间,以秒或毫秒计。
animation-timing-function规定动画的速度曲线。
animation-delay规定在动画开始之前的延迟。
animation-iteration-count规定动画应该播放的次数。
animation-direction规定是否应该轮流反向播放动画。
animationname 必需。定义动画的名称。
keyframes-selector 必需。动画时长的百分比。值:0-100%,from(与 0% 相同),to(与 100% 相同)
css-styles 必需。一个或多个合法的 CSS 样式属性。
4.@media :可以根据屏幕大小响应式改变样式
接下来利用transition和transfrom实现一个简单的翻牌效果,先看效果