变形的transform和transition动画,关键帧动画

tansform属性允许旋转,缩放,倾斜,平移给定的元素

常见的函数有:

平移:translate(x,y)

.z2:hover{transform: translate(20px);}

向x轴平移20像素
缩放:scale(x,y)

.z2{width: 100px;            
	height: 100px;            
	background-color: seagreen;            
	display: inline-block;             
	transform-origin: center left;        } 
.z2:hover{transform: scale(2,1);}

当只有一个值时候,是x,y轴同时缩放。值的类型是数字1:保持不变;2:放大一倍;0.5:缩小一半,且不支持百分比
transform-origin: center left:设置缩放位置的原点,第一个center表示x轴,第二个left表示y轴
旋转:rotate(deg)

.z2:hover{            
    transform: rotate(45deg);       
 }

一个值表示旋转角度。值类型为:deg:表示旋转的角度,45deg表示旋转45度;正数为顺时针;负数为逆时针,旋转的原点受到transform-origin影响

倾斜:skew(deg,deg)

.z2:hover{            
    transform: skew(45deg,45deg);       
 }

一个值表示x轴上的倾斜,两个值表示x,y轴上的倾斜。值类型为:deg:表示旋转的角度,45deg表示旋转45度;正数为顺时针;负数为逆时针。旋转的原点受到transform-origin影响
transition

.z2{width: 100px;            
	height: 100px;            
	background-color: seagreen;            
	display: inline-block;            
	transition: width 5s linear 2s;}        
.z2:hover{width:200px;}

宽度匀速变成200px
transition css属性是transition-property,transition-duration,transition-timing-function,transition-delay的一个简写属性
transition-property:指应用过度属性的名称
可以写all表示所有可动画属性
transition-duration:过渡动画需要的时间
单位可以是秒或者毫秒
transition-timing-function:指动画变化的曲线方式
linear 规定以相同速度开始至结束的过渡效果,即匀速。(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubicbezier(0.25,0.1,0.25,1))。ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。
transition-delay:执行动画的等待时间
关键帧动画:
过渡动画只能控制首尾两个值,如果我们想要有更多的变化,可以使用关键帧动画。

关键帧动画用@keyframes来定义多个变化,并且使用animation-name来匹配声明:

1.使用@keyframes创建一个规则

2.@keyframes中使用百分比定义各阶段样式

3.通过animation将动画添加到属性上

animation属性
最常用的几种属性有以下几种:

1、animation-name(动画名称)

animation-name属性是必须存在的,因为animation-name的值默认是none,没有动画。

2、animation-duration(动画执行一次所需时间)

animation-duration属性也是必须存在的,因为animation-duration的值默认是0,没有动画。

3、animation-delay(动画在开始前的延迟时间)

animation-delay的值可以是秒(s)或者是毫秒(ms),默认值是0,没有延迟。

4、animation-timing-function(动画以何种运行轨迹完成一个周期)

animation-timing-function的值是贝塞尔曲线,默认值是ease,表示动画以低速开始,然后加速,最后在结束前变慢。 最常用的值有以下几个:

(1)linear:表示动画从头到尾的速度都是相同的。

(2)ease-in:表示动画以低速开始。

(3)ease-out:表示动画以低速结束。

(4)ease-in-out:表示动画以低速开始和结束。

如果没有想用的值,也可以直接使用三次贝塞尔函数,使用网站是http://cubic-bezier.com,可直接调试出自己想要的值;也可以在浏览器中直接调试,现在浏览器调试工具中都支持贝塞尔函数可视化调试。

5、animation-iteration-count(动画播放次数)

animation-iteration-count属性值有两种:

(1)直接写数字,自定义想要播放动画的次数。

(2)infinite:设置动画无线循环播放。

6、animation-fill-mode(定义元素动画结束以后或者未开始的元素样式)

默认值为none,标示,不会在动画结束或者未开始时给元素 添加样式

常用属性值为:

(1)forwards:表示动画结束后,元素直接接使用当前样式。

(2)backwards:表示在动画延迟时间元素使用关键帧中from的属性值或者to属性值(当animation-direction为reverse或者alternate-reverse时)

7、animation-direction(是否轮流反向播放动画)

默认值是normal,动画正常播放。如果动画只播放一次,则该属性无效。

常用的属性值为:

(1)reverse:表示动画反向播放。

(2)alternate:表示动画在奇数次播放时为正向播放,为偶数次播放时为反向播放。

(3)alternate-reverse: :表示动画在奇数次播放时为反向播放,为偶数次播放时为正向播放。

animation属性在书写通常合并在一起,除非需要单独设置的属性值,animation属性的简写形式为:animation:code 2s 2s linear infinite alternate forwards;

.z2{
width: 100px;
height: 100px;
background-color: royalblue;
}
.z2:hover{

        animation: text1 4s linear;    
    }

@keyframes text1 {
0%{
transform: translate(0,0);
}
25%{
transform: translate(20px,0);
}
50%{
transform: translate(20px,20px);
}
100%{
transform: translate(0,0);
}
}

关键帧动画:

过渡动画只能控制首尾两个值,如果我们想要有更多的变化,可以使用关键帧动画。

关键帧动画用@keyframes来定义多个变化,并且使用animation-name来匹配声明:

1.使用@keyframes创建一个规则

2.@keyframes中使用百分比定义各阶段样式

3.通过animation将动画添加到属性上

animation属性
最常用的几种属性有以下几种:

1、animation-name(动画名称)

animation-name属性是必须存在的,因为animation-name的值默认是none,没有动画。

2、animation-duration(动画执行一次所需时间)

animation-duration属性也是必须存在的,因为animation-duration的值默认是0,没有动画。

3、animation-delay(动画在开始前的延迟时间)

animation-delay的值可以是秒(s)或者是毫秒(ms),默认值是0,没有延迟。

4、animation-timing-function(动画以何种运行轨迹完成一个周期)

animation-timing-function的值是贝塞尔曲线,默认值是ease,表示动画以低速开始,然后加速,最后在结束前变慢。 最常用的值有以下几个:

(1)linear:表示动画从头到尾的速度都是相同的。

(2)ease-in:表示动画以低速开始。

(3)ease-out:表示动画以低速结束。

(4)ease-in-out:表示动画以低速开始和结束。

如果没有想用的值,也可以直接使用三次贝塞尔函数,使用网站是http://cubic-bezier.com,可直接调试出自己想要的值;也可以在浏览器中直接调试,现在浏览器调试工具中都支持贝塞尔函数可视化调试。

5、animation-iteration-count(动画播放次数)

animation-iteration-count属性值有两种:

(1)直接写数字,自定义想要播放动画的次数。

(2)infinite:设置动画无线循环播放。

6、animation-fill-mode(定义元素动画结束以后或者未开始的元素样式)

默认值为none,标示,不会在动画结束或者未开始时给元素 添加样式

常用属性值为:

(1)forwards:表示动画结束后,元素直接接使用当前样式。

(2)backwards:表示在动画延迟时间元素使用关键帧中from的属性值或者to属性值(当animation-direction为reverse或者alternate-reverse时)

7、animation-direction(是否轮流反向播放动画)

默认值是normal,动画正常播放。如果动画只播放一次,则该属性无效。

常用的属性值为:

(1)reverse:表示动画反向播放。

(2)alternate:表示动画在奇数次播放时为正向播放,为偶数次播放时为反向播放。

(3)alternate-reverse: :表示动画在奇数次播放时为反向播放,为偶数次播放时为正向播放。

animation属性在书写通常合并在一起,除非需要单独设置的属性值,animation属性的简写形式为:animation:code 2s 2s linear infinite alternate forwards;

.z2{
            width: 100px;
            height: 100px;
            background-color: royalblue;
        }  
 .z2:hover{

            animation: text1 4s linear;    
        }
 @keyframes text1 {
            0%{
                transform: translate(0,0);
            }
            25%{
                transform: translate(20px,0);
            }
            50%{
                transform: translate(20px,20px);
            }
            100%{
                transform: translate(0,0);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值