CSS3中 translate、transform和translation,和动画animation

举个栗子:—— 元素整体居中

.box{

    position:absolute;top:50%;left:50%;

    width:50px;

    height:50px;

    transform:translate(-50%,-50%);

    background:gray;

}

1.translate:移动,是transform的一个方法

通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数:

用法transform: translate(50px, 100px);

-ms-transform: translate(50px,100px);

-webkit-transform: translate(50px,100px);

-o-transform: translate(50px,100px);

-moz-transform: translate(50px,100px);

2.transform:变形,改变

CSS3transform主要包括以下几种:旋转rotate扭曲skew缩放scale移动translate以及矩阵变形matrix

  • 旋转:rotate() 顺时针旋转给定的角度,允许负值 rotate(30deg)
  • 扭曲:skew() 元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数:skew(30deg,20deg)
  • 缩放:scale() 放大或缩小,根据给定的宽度(X 轴)和高度(Y 轴)参数: scale(2,4)
  • 移动:translate() 平移,传进 x,y值,代表沿x轴和y轴平移的距离

所有的2D转换方法组合在一起:矩阵matrix() 旋转、缩放、移动以及倾斜元素

transform: matrix(水平偏移距离, 垂直偏移距离);

// 例
transform: matrix(1, 0, 0, 1, 30, 30); 

改变起点位置 transform-origin: bottom left;

transform: rotate 旋转| scale 缩放| skew扭曲 | translate移动 |matrix矩阵变形;

综合起来使用:transform: 30deg 1.5 30deg 20deg 100px 200px; //需要有空格隔开

3.transition: 允许CSS属性值在一定的时间区间内平滑的过渡。(过渡动画)

       Transition作用是指定了某一个属性(如width、left、transform等)在两个值之间如何过渡。

如果某一个元素指定了Transiton,那么当其某个属性改变的时候就会按照Transition指定的方式进行过渡,动画就这么产生了。

transition主要包含四个属性值:

  • 执行变换的属性:transition-property;
  • 变换延续的时间:transition-duration;
  • 在延续时间段,变换的速率变化:transition-timing-function  //例:平缓进入、先快后慢;
  • 变换延迟时间:transition-delay。

需要事件的触发,例如单击、获取焦点、失去焦点等。

语法:transition:property duration timing-function delay;

例如:transition:width 2s ease 0s;

4.Animation

Animation也是通过指定某一个属性(如width、left、transform等)在两个值之间如何过渡来实现动画的,与Transition不同的是:

  1. Animation可以通过keyframe显式控制当前帧的属性值,而Transition只能隐式来进行(不能指定每帧的属性值),所以相对而言Animation的功能更加灵活;

  2. Animation通过模拟属性值改变来实现动画,动画结束之后元素的属性没有变化;而Transition确实改变了元素的属性值,动画结束之后元素的属性发生了变化;这一点,这在实际应用中会产生很大的区别。

Animation模块包括了animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-play-state等属性。

 

animation用法详见下篇博客:css动画

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值