css3-变形

--------------------------------------------------------------------------------------                                                
                                css3-变形
 
A:
    css变形允许动态的控制元素,可以在屏幕周围移动,缩小或者放大,甚至旋转
    
B:
    css3中 具有x/y函数:    translateX(),translateY(),scaleX(),scaleY(),skewX(),skewY()
    
    2D变形函数:        translate(),    scale(), rotate()
                    translate: 标准css度量单位
                    scale:        0~1之间的十进度值;
                    rotate,skew: 径向度量单位deg
                    matrix:矩阵
 
 
    3D变形函数:        rotateX(),rotateY(),rotate3d(),translateZ(),translate3d(),scaleZ(),scale3d(),matrix3d()
 
C:
 
    属性:    transform:一组转换函数
            transform-origin: 指定元素的中心点
            transform-origin-z:控制元素三维空间中心点
            transform-style: preserve-3d = 建立一个3D渲染环境
D:---------transform-------------------------------------------------------------------
    用法:    transform: none, | <transform-function> | [<transform-function>]*    可用于内联函数和块元素
    
            transform-function 之间利用空格隔开
 
 
        2D:function:    1.translate() = 移动元素,根据x,y重新定位元素位置 translateX + translateY
                2.scale()     = 缩放元素               scaleX + scaleY
                3.rotate()    = 旋转元素
                4.skew()      = 倾斜元素               skewX + skewY
                5.matrix()    = 定义矩阵变形,基于x,y轴坐标重新定位元素位置
 
        
        3D:function:  1.translate3D()= 移动元素,指定一个3D变形移动位移量
                2.translate()  = 指定3D位移在Z轴中的位移量
                3.scale3D()    = 缩放一个元素
                4.scaleZ()     = 指定Z轴的缩放量
                5.rotate3d()   = 指定元素具有一个三维旋转的角度
                6.rotateX(),rotateY(),rotateZ(): 元素具有一个旋转角度
                7.perspective()= 指定一个透视投影矩阵
                8.matrix3d()   = 矩阵变形
 
 
E:---------transform-origin-------------------------------------------------------------------
 
    用法:    transform-origin: [<percentage> | <length> | left | center | right | top | bottom]
                    | [[<percentage> | <length> | left | center | right]
                    && [<percentage> | <length> | top | center | bottom] ] <length> ?  
 
        设置一个值:
            transform-origin: x-offset/offset-keyword
 
        设置两个值:
            transform-origin: x-offset/keyword  y-offset/keyword
 
        设置三个值:
            transform-origin: x-offset/keyword   y-offset/keyword   z-offset/keyword
 
        可以为百分比,em,px等,也可以是top,right,bottom,left,center
 
 
            offset:     设置x,y轴偏移量。可以使用length \ percentage值,同时可以是正值负值
            keyword:     top,right之类
            z-offset:    设置3D变形中transform-origin远离用户眼睛视点的距离,默认值为0.可以为length
                
 
    关键词                                                            和        百分比
 
top=top center=center top                                         50% 0%
 
right=right center=center right                                 100% / 100% 50%    
 
bottom=bottom center=center bottom                     50% 100%
 
left=left center=center left                                          0% / 0% 50%
 
center=center center                                                 50% / (50% 50%
 
top left / left top                                                           0% 0%
 
right top/top right                                                        100% 0%
 
bottom right/right bottom                                           100% 100%
 
bottom left=left bottom                                                0% 100%
 
 
E:---------transform-style-------------------------------------------------------------------
        指定嵌套元素在3D空间的呈现
    
    transform-style: flat | perserve-3d
 
        flat:     默认,所有子元素在2D平面呈现
        perserve-3d: 3D平面呈现 (不能防止子元素溢出容器而设置overflow:hidden)
 
perspective: 设置查看者的位置。值越小,用户与3d空间z平面之间的距离越小,3d越明显,0=none=无穷大
    
    perspective: none | <length>
        none: 默认,以无限的角度来看3d物体。
        length: 单位不能为百分比值。
        (perspective() 用在当前元素,perspective用在舞台元素的共同父元素)
 
perspective-origin:决定perspective的源点角度
    
    perspective-origin: (为了转换子元素变形的深度,
                    perspective-origin必须定义在父元素身上+需要与perspective属性结合使用以便将视点移至元素中心外)
 
        默认center,50% 50%
        第一个值: 指定相对于元素的包含框的x轴上的位置
        第二个值: 指定相对于元素的包含框的Y轴上的位置        
        
backface-visibility: 旋转背面是否可见
    backface-visibility: visible | hidden (可见 / 不可见)
 
 
F:------------------------css2D变形---------------------------------------
    
    translate():    将元素按照指定的方向进行移动
        ==translate(tx)  //  translate(tx,ty)
 
            tx:    X轴移动的方向。为正值,元素向X轴右方向移动反之向左
            ty:    y轴移动的方向。为正值,元素向y轴下方向移动反之向上
 
    
    
    scale():    根据中心原点对象进行缩放,默认值为1
        ==scale(sx)  // scale(sx,sy);
            
            sx:    x轴缩放方向。值为0.01~0.99之间缩小。 >1.01,x轴放大
            sy:    y轴缩放方向。
            

    rotate():    二维空间接受角度值进行旋转 (不改变形状,倾斜)
        ==rotate(a);    //正值:顺时针旋转、、、负值:逆时针旋转


    skew():    元素倾斜显示。(不旋转,改变形状)
        ==skew(ax)  // skew(ax,ay);
        

    matrix():    矩阵变形
        ==matrix(a,b,c,d,e,f);
            
            对应矩阵:     a,c,e       计算:    a,c,e  |  x                            ax+cy+e
                                     b,d,f                        b,d,f   |  y        ---->>>        bx+dy+f
                                     0,0,1                       0,0,1 |  1                                 1

        矩阵例子=======:::
            eg: transform: matrix(1,0,0,1,50,50);    ->(a=1, b=0, c=0,d=1, e=50, f=50);
                矩阵计算: (偏移元素的中心点: (1,1))
                    1 0 50 |  1                                          51
                    0 1 50 |  1                      ----1->>>    51                        --2--->>>             (51,51)
                    0 0 1   |  1                                            1
                
        

                    ---3--->>>                          即 (1,1) ->(51,51)   

                   

                                                          此时matrix(1,0,0,1,50,50) = translate(50px,50px);


        matrix和其他函数的关系:
            matrix(1,0,0,1,tx,ty)    =         translate(tx,ty)
        
            matrix(sx,0,0,sy,0,0)        =      scale(sx,sy)               

            matrix(cos(A),sin(A),-sina(A),cos(A),0,0) =    rotate(a);

            matrix(1, tan(ay) , tan(ax) ,1,0,0)        =   skew(ax,ay);

        镜像:    matrix( (1-k^2)/(1+k^2) , 2k/(1+k^2) , 2k(1+k^2) , (k^2-1)/(1+k^2) , 0,0 )    


        
H:----------------------------------3D变形------------------------------------
    位移:    translateZ()  +    translate3d()
    旋转:    rotateX()     +       rotateY()    +    rotateZ()    +    rotate3d()
    缩放:    scaleZ()    +    scale3d()
    矩阵:    matrix3d()

        
        ==translate3d(tx , ty , tz)
            z轴值不能为一个百分比值
        
        ==translate(t)
            z轴的向量位移长度

        ==scale(sx,sy,sz)    :需要搭配其他的变形函数
            sx:横向缩放比例    sy:纵向缩放比例    sz:z轴缩放比例    


        ==scaleZ(s)
            指定元素每个点在Z轴的比例


        ==rotateX(a)    rotateY(a)    rotateZ(a)
            
        ==rotate(x,y,z,a)
            x:0~1    描述元素围绕X轴旋转的矢量值
            y:0~1    描述元素围绕Y轴旋转的矢量值
            z:0~1  描述元素围绕z轴旋转的矢量值
            a:角度值。指定元素在3d空间旋转的角度。正值:顺时针旋转,负值:逆时针旋转
        
            rotateX = rotate(1,0,0,a);
    
        
        ==matrix(sx,0,0,0,0,sy,0,0,0,0,sz,0,0,0,0,1)    透视投影            
                
                矩阵:    sx 0  0  0
                                0  sy 0  0
                                0  0  sz 0
                                 0  0  0  1
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值