移动web( 3D效果空间转换 动画)

一.3D空间转换

空间转换(transform):

  • 属性:transfrom实现元素在空间内的位移,旋转,缩放等效果
  • 空间:是从坐标角度定义,分为X,Y,Z三条坐标轴的立体空间,Z轴是面对我们视线
  • 语法综合写法:transform:translate3d(x,y,z);
  • 单写法:transform:translateX(值);         transform:translateY(值);        transform:translateZ(值);
  • 取值(正负均可) :1.像素单位值(px)   2.百分比(100%) 
 transform: translate3d(200px,200px,200px);


透视(perspective):

  • 属性(添加给父级)    1.porsprctive:值      2.取值:像素单位数值,一半数值在800-1200
  • 作用:空间转换时,为元素添加近大远小,近实远虚视觉效果
  • 透视距离也称为视距,所谓的视距就是人的眼睛到屏幕的距离

perspective:800;
/* 取值800-1200 */

空间旋转(rotate):

  • 语法:

               transfrom:rotateZ(值)

               transfrom:rotateY(值)

               transfrom:rotateX(值)

  • 左手原则:判断旋转方向:左手握住旋转,拇指所指向正值方向,手指弯曲方向为旋转正值方向

             /* 旋转x轴  正值是从上到下 */
            /* transform:rotateX(-180deg) ; */
            /* 旋转y轴  正值是从左往右 */
            /* transform: rotateY(-180deg); */
            /* 旋转Z轴  在自转 */
            transform: rotateZ(360deg);

立体呈现(transform-steyle:preserve-3d):

  • 呈现立体图标步骤: 1.盒子父元素添加transfrom-style:preserve-3d;          2.设置盒子的位置(位移或旋转)
  • 注意:空间内,转换元素都有自己独立坐标轴,互不干扰

空间缩放(scale):

语法:

  • transform: scaleX(倍数);
  • transform: scaleY(倍数);
  •  transform: scaleZ(倍数);
  •  transform: scale3d(x, y, z)
 /* scaleX,放大的是宽;
            transform:scaleX(2) */ 
             /* scaleY,放大的是高 */
            /* transform:scaleY(2);Z轴必须配合透视+旋转 */
            transform:scaleZ(200)  rotateX(90deg);


二.动画

动画的实现步骤:

  • 定义动画

  • 调用动画(animation)


动画属性:

使用animation相关属性控制动画执行过程

  /* 动画animation: 动画名  动画执行时间 动画速度  动画的延迟时间  动画次数  动画的方向 */
            animation: move 2s linear 0s infinite alternate;
            /* 执行完毕的状态不能和无限循环,动画的方向一起使用 */
  1. 动画名字参照css类选择器命名
  2. 动画时长和延迟时间别忘了带单位 s
  3. infinate 无限循环动画(重复次数)
  4. alternate 为反向 就是左右来回执行动画(跑马灯)
  5. forwards 动画结束停留在最后一帧状态, 不循环状态使用
  6. linear 让动画匀速执行

实现逐帧动画steps(帧):

逐帧动画:帧动画。开发中,一般配合精灵图实现动画效果。

 


多组动画:

/* 我们想要2个动画一起执行  animation: 动画1, 动画2, ... 动画n */
animation: run 1s steps(12) infinite, move 5s linear forwards;


鼠标经过暂停动画:

/* 鼠标经过box,  则 ul 停止动画 */
.box:hover ul {
    animation-play-state: paused;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值