H5C3 学习(三) ---- 过渡,2d转换,3d转换各种属性

一.过渡

transition:过渡是css3中具有颠覆性的特征之一,可以实现元素不同状态间的平滑过渡(补间动画).

必须有两个不同的状态

1.补间动画和帧动画

帧动画:通过一帧一帧的画面按照固定顺序和速度播放

补间动画:补间动画只需要起始状态和终止状态,浏览器自动完成中间的过渡

2.过渡的属性

1. transtion-property:设置过渡属性; 如: transition-property:all; transition-property:width;

2.  transtion-dyration:设置过渡时间; 如: transition-duration:1s ;

3. transtion-delay:设置过渡延迟时间; 如: transition-delay:2s;  // 2s后开始执行动画

4. transtion-timing:设置过渡速度; 如: linear , ease , ease-in , ease-out , ease-in-out , steps(10);

3.属性合写

属性   时间   延迟  速度 

transition : width 1s 3s linear, height 3s 1s ease;多个属性用逗号隔开,可以省略后两个

二.2D转换

transform转换,2D转换,元素在平面上实现移动,旋转,缩放,斜切等操作

1.scale缩放

transform:scaleX( 0.5 ); //让宽度变化为原来的0.5倍

transform:scaleY( 0.5 ); //让高度变化为原来的0.5倍,不能写多个,会被覆盖

transform:scale( 0.5 ); // 让宽度和高度同时变化

注意:   scale 接收的值是倍数,因此没有单位

           scale 可以是一个值,如果是一个值宽高都会等比例缩放

           可以通过transforn-origin设定旋转原点

2.translate平移

transform:translateX(100px);

transform:translateY(100px);

transform:translate(100px,100px);

transform:translate(50%,50%);

注意:  translate的值可以是px,也可以是百分比,百分比对照的是自身的宽高

          translate移动的元素并不会影响其他盒子,类似于相对定位

3.rotate 旋转

transform:rotate( 360deg ); // 旋转360度

transform:rotate( -360deg ); // 逆时针旋转360度

注意 : 单位是deg,角度,不是px 

          正值顺时针转,负值逆时针转

         可以通过transform-prigin设定旋转原点

         转换原点写在A状态,不在B状态

4.skew斜切(平行四边形)

一般x,y只会倾斜一个

在水平方向倾斜:  transform: skewX(30deg);

在垂直方向倾斜: transform: skewY(30deg);

5.transform-origin转换原点

transform-origin:center center; 水平中间,垂直中间转换

transform-origin: 40px 40px; 

6.转换合写问题

transform : translateX(800px) scale(1.5) rotate(360deg);

1 . transform属性只能写一个,如果写多了会被覆盖,

2 . transform属性可以连写,但是顺序对效果有影响,在第一个执行的基础上执行第二个(通常把totate放后面)

3 . 如果对transform进行过度的时候,初次状态和结束状态一一对应

三. 3D转换

transform:不仅可以2D转换,还可以进行3D转换,

1. 坐标轴

xyz三个维度,三条轴相互垂直,Y轴是向下的

2. totate 旋转

transform :rotate(45deg);  // 元素在平面2D中旋转

transform :rotateX(45deg);  // 元素沿x轴旋转45度

transform :rotateY(45deg);  // 元素沿y轴旋转45度

transform :rotateZ(45deg);  // 元素沿z轴旋转45度

3. translate 平移

沿着x轴 y轴 z轴的正方向移动45px

transform : translateX(45px),translateY(45px) , translateZ(45px);

4,perspective 透视

可以实现近大远小的效果,透视设置的是用户眼睛和屏幕距离,

透视值,越小效果越明显,透视需要设置给变化元素父盒子

又是的3D效果仅仅只是在视觉上呈现,本质并不是立体的空间

5.ransform-style 2D还是3D的设置

transform-dtyle: flat;默认值, 2d显示 

ransform-style : perserve-3d;3d显示

transform-style和perspective的区别:

透视只是相当于设置一个距离,辅助我们查看3D效果的工具

perspective-3d: 给父盒子添加,让子元素保留3d的位置,是真的3d

立方体: 代码实现

注意: 3D变换中旋转,对着正方向去看,正值都是顺时针,负值时逆时针

6. backface-visibility 背面是否可见

指定元素背面面向用户是是否可见

visible:指定元素背面可见,允许显示正面的镜像

hidden : 指定元素背面不可见

注意 : 只有在3d情况下,background-visibility才会生效

发布了64 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44114310/article/details/89334313