3d转换,过渡,2d转换,动画

3d转换

相对与2d,3d就是立体化,元素是在一个三维坐标系中,其中需要注意:

x轴:水平向右(x右边为正,左边为负)

y轴:垂直向下(y下面为正值,上面为负值)

z轴:垂直于屏幕(往屏幕外是正值,屏幕内是负值)

他的特点是远小近大,而且后面的物体会被遮挡住。

3d与2d用法上有很多相似之处:

位移:(1):transform:translate(x,y,z)

(2):transform:translateX/Y/Z(距离)

旋转:(3):transform:rotateX/Y/Z(deg)

(4):transform:rotate(x,y,z,deg)

透视:(5);perspective(就是远小近大的原因)

3d呈现:(6):transform-style

3d呈现;

(1)控制元素是否开启三维环境。

(2)transform-style:flat:子元素不开启3d空间(默认)

(3)transform-style:preserve-3d:子元素开启3d空间

(4)代码是写给父级的,但是影响的是子级

动画

定义:它是css3中的具有颠覆性的特征之一,它可以通过设置多个节点来精准控制一个或者一组动画,它可以协助制作者实现复杂的动画效果。它比较于过渡来说可以实现更多变化,更多控制,连续自动播放等效果。

那么如何制作动画呢:

1.先要定义动画

2.再使用动画

(相当于一个变量,要定义才能更方便多去使用。)

注意:要使用动画,需要高版本的浏览器。

1,使用动画前,用@keyframes定义动画,定义好后,通过animation属性来指定动画名称。

定义动画是,需要告诉它这个动画如何完成

(1):开始状态:from

(2):结束状态:to

例如:

<style>

.box{
position:absolute

left/right:

top/bottom:

}(这是定义好的方形,当然也可以对body中的进行编辑,运用选择器就可以了)

.box;hover{animation:move 2s

}

@keyframes move{
from{left:0px;

top:0px         }

to{left: 100px

bottom:100px       }

</style>

除了用from,to,还可以用百分数来表示。即from类似百分之零,才开始;to类似百分之一百,已经结束。但百分数的好处是它可以定义的更多一些,也就是中间的元素变化也可以进行编辑。

但注意:要想元素具有动画效果,除了定义好动画和运用外,还需要给这个元素进行绝对定位。

其中animation是动画属性的简写。他后面必须接name(元素的名称),duration(动画完成一个周期所需的时间);还可以接timing-function(动画的速度曲线,默认为ease),delay(动画何时开始,默认为0),iteration-count(动画播放的次数,默认是1,还有infinite),fill-moode(动画状态,通常有两个值进行指定:保持结束时候的状态(forwards),回到开始时的状态backwards),play-state(规定动画是否在运行还是暂停,但他必须单独使用,即另成一行。其中running表示运行,是默认值;paused表示暂停状态)等一些常用属性。

另外:opacity是指透明度,当为1的时候,就是透明了。

将这些与css3中其他特征结合起来,会有更好的效果

2d转换

是什么:所谓转换就是对页面中的元素进行位移,旋转,缩放等一系列形态上的变化,也可以说它是一种元素的“变形”。当然它也是属于css3中的一种加工元素的方式,今天带你们了解一下其中的2d转换。

1.其实吧,2d个人感觉应该就是相当于一个平面。而网页很多元素都是在平面上进行编辑的。

2.移动(translate)

就是改变元素在页面上的位置。比如,你觉得你所编辑的网页中图片在左上角,但你觉得他应该在你所写的内容的右侧,相当于插画。这个时候你就可以用“移动”来进行操作。

语法:transform:translate(x,y)

你还可以分开写,像这样:

           transform:translateX(n)

           transform:translateY(n)

但注意:(1):2d中的移动是沿着x,y轴移动的。(对比原图形,同时x,y的值可正可负)

              (2):其次,它不会影响到其他元素的位置,不会存在把另外元素挤走,或者挤压的情况。

              (3):当你用%单位来定位时,是相对于自己元素的本来正中间的点进行的。

              (4);但他对行内标签没有效果(行内标签:与其他标签在同一行,但他不能设置宽度,高度,行高,以及距顶/底部距离)

3.旋转。

这个就很好理解了,比如说,你写的福字,你想给它到过来,就需要运用到旋转这一方式。

语法:transform :rotate()[在这个小框框里是我们需要旋转的数值,但注意其角度符号是deg。

示例:<style>

.box{
posistion:absolute

width:50px

height:50px

transform:rotate<45deg>

}

</style>

这个时候你就会发现原来你所创造的小方形在页面上旋转了45度,一般情况下旋转是以元素中心为旋转点来进行旋转,所以当你在旋转时要注意在页面边上的元素哦,很可能会有些部分被你旋转出框。

4.转换中心点。

你会发现在转换中多次出现中心点,那中心点一定就固定吗?不,他可以进行改变这个时候就需要origin属性来操作。

语法:transform-origin:x  y;

但它有些地方注意:(1);x,y参数中间是需要用空格来隔开的。

                                (2):x,y默认转换的中心点是元素的中心点(50% 50%)

                                (3):还可以给x,y设置像素或者方位名词(top bottom left right center)

5.缩放。

这个也很好理解,就是对你页面中的元素的大小进行改变,其中也可以只对元素的一个部分进行缩放。

语法:transform:scale(x,y)

注意:(1):其中x,y用逗号来隔开。

           (2):当你用transform:scale(a,a)跟transform:scale(a)效果是一样的

           (3):其中大于1是指放大,小于1是指缩小。

过渡

过渡:就是当你在将一个元素变换成另一个元素时可以添加的效果。而过渡动画则是从一个状态渐渐的过渡到另外一个状态,经常和hover一起用,

使用语法:

transition:过渡属性 执行时间 运动曲线 何时开始
可以用此缩写来用,但也可以把属性分开来用:
-transition-property:指定用于过渡属性的名称:如:width
-transition-duration:过渡持续时间,秒
-transition-timing-function:过渡的运行曲线,默认为ease
-transition-delay:延迟执行时间,秒
注意:添加过渡元素效果的代码需要放在你想要进行过渡的元素上。就是说,希望那个元素有过渡效果就把代码添加到那个元素上去。
运动曲线有那些:
ease:默认值,逐渐慢下来
linear:匀速运动
ease-in:加速
ease-out:减速
ease—-in-out:先加速后减
 


 


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值