css过渡属性 移动,CSS3过渡与transforms

一、transition

过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。语法格式:

transition: 要过渡的属性 花费时间 运动曲线 何时开始;(如果有多组属性变化,还是用逗号隔开)

属性及其描述:

68f371b08a07

属性描述

运动曲线示意图:

68f371b08a07

运动曲线示意图

附上仿京东侧边栏写法:

京东侧边栏

* {

margin: 0;

padding: 0;

}

.subnav li {

list-style: none;

width: 20px;

height: 20px;

margin: 3px 0;

background-color: pink;

position: relative;

}

.subnav {

width: 20px;

margin: 100px auto;

}

.subnav div {

position: absolute;

right: 0;

top: 0;

height: 20px;

width: 0;

background-color: purple;

transition: all .6s;

z-index: -1;

}

.subnav li:hover div {

width: 100px;

}

二、2D变形(CSS3) transform

transform同样也是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、倾斜、缩放,甚至支持矩阵方式,配合过渡和动画知识,可以取代大量之前只能靠Flash才可以实现的效果。

2.1 移动tanslate(x,y)

基本语法:

translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)

translateX(x)仅水平方向移动(X轴移动)

translateY(Y)仅垂直方向移动(Y轴移动)

translate还有一个妙处就是实现盒子水平居中,相比于margin外边距和定位方法,translate方法适用范围更广,在不知道盒子大小或者不方便计算时就可以使用该方法:

.box {

width: 499.9999px;

height: 400px;

background: pink;

position: absolute;

left:50%;

top:50%;

transform:translate(-50%,-50%); /* 走的自己的一半 */

}

2.2 缩放scale(x,y)

基本语法:

scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)

scaleX(x)元素仅水平方向缩放(X轴缩放)

scaleY(y)元素仅垂直方向缩放(Y轴缩放)

scale()的取值默认的值为1,当值设置为0.01到0.99之间的任何值,作用使一个元素缩小;而任何大于或等于1.01的值,作用是让元素放大

2.3 旋转rotate(deg)

基本语法:

transform:rotate(45deg);/*正值为顺时针,负值为逆时针*/

div{transform-origin: left top;transform: rotate(45deg); } /* 改变元素原点到左上角,然后进行顺时旋转45度 */

div{transform-origin: 10px 10px;transform: rotate(45deg); } /* 改变元素原点到x 为10 y 为10,然后进行顺时旋转45度 */

2.4 倾斜skew(deg,deg)

基本语法:

transform:skew(30deg,0deg);/*把元素水平方向上倾斜30度,竖直方向保持不变*/

三、3D变形(CSS3) transform

首先来看一下3D坐标轴:

68f371b08a07

CSS3的3D坐标轴

其中用法与2D相类似,著不过多出了Z轴

rotateX(deg)//绕x轴旋转

rotateY(deg)//绕y轴旋转

rotateZ(deg)//绕z轴旋转

transelateX();//与2D一致水平方向移动

transelateY();//与2D一致竖直方向移动

translateZ(z);//沿Z轴方向移动

translate3d(x,y,z);//其中,x和y可以是长度值,也可以是百分比,百分比是相对于其本身元素水平方向的宽度和垂直方向的高度和;z只能设置长度值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值