zoukankan      html  css  js  c++  java
  • transform实例

    transform

    1,定义:transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜

    2,浏览器支持:

    Internet Explorer 10、Firefox、Opera 支持 transform 属性。

    Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

    Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

    Opera 只支持 2D 转换。

    3,值以及值的定义:

    none 定义不进行转换。  
    matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。  
    matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。  
    translate(x,y) 定义 2D 转换。  
    translate3d(x,y,z) 定义 3D 转换。  
    translateX(x) 定义转换,只是用 X 轴的值。  
    translateY(y) 定义转换,只是用 Y 轴的值。  
    translateZ(z) 定义 3D 转换,只是用 Z 轴的值。  
    scale(x,y) 定义 2D 缩放转换。  
    scale3d(x,y,z) 定义 3D 缩放转换。  
    scaleX(x) 通过设置 X 轴的值来定义缩放转换。  
    scaleY(y) 通过设置 Y 轴的值来定义缩放转换。  
    scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。  
    rotate(angle) 定义 2D 旋转,在参数中规定角度。  
    rotate3d(x,y,z,angle) 定义 3D 旋转。  
    rotateX(angle) 定义沿着 X 轴的 3D 旋转。  
    rotateY(angle) 定义沿着 Y 轴的 3D 旋转。  
    rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。  
    skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。  
    skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。  
    skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。  
    perspective(n) 为 3D 转换元素定义透视视图。  


    4,实例:

    1,变换函数

    translateX(x):在水平方向移动元素,正值向右移动。
    translateY(y):在垂直方向移动元素,正值向下移动。
    translate(x,y):在水平和垂直方向移动元素。
     
    scaleX(x):在水平方向缩放元素(1.0是原始大小)。使用负值会将元素绕y轴翻转,创建一个从右到左的镜像。
    scaleY(y):在垂直方向缩放元素(1.0是原始大小)。使用负值会将元素绕x轴翻转,创建一个从下到上的镜像。
    scale(x,y):在水平和垂直方向缩放元素。
     
    rotate(angle):围绕元素中心顺时针旋转。用负值则逆时针旋转。
     
    skewX(angle):在水平方向倾斜元素。上下边缘仍然水平,左右边缘倾斜。
    skewY(angle):在垂直方向倾斜元素。左右边缘不倾斜,上下边缘倾斜。
    skew(x-angle,y-angle):在水平和垂直方向倾斜。
     
    matrix(n1,n2,n3,n4,n5,n6):用矩阵乘法来变换元素(其他所有的变换都可以使用矩阵乘法来实现)。
     
    2,变换
    变换是一个强大的工具,可以移动、缩放、斜切和旋转元素,扭曲它的外观。要用 transform 属性即可实现变换。
    (变换不会影响页面中的其他元素,也不会影响布局。比如通过变换放大某个元素,那么该元素会简单地覆盖相邻元素)
    以如下图片为例:
    原文:CSS3 - 变换(Transform)的使用,以及变换的过渡
     
    (1)旋转元素及其内容
    下面使用rotate()函数把元素围绕其中心点旋转了20度。
    原文:CSS3 - 变换(Transform)的使用,以及变换的过渡
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style>
    .rotatedElement {
        transform: rotate(20deg);
        -ms-transform: rotate(20deg);
        -webkit-transform: rotate(20deg);
    }
    </style>
     
    <img src="logo5.png" class="rotatedElement"/>

    (2)连续使用多种变换效果

    下面先把元素变成原来的1.2倍,再向右移动30个像素,然后又斜切了-15度。
    原文:CSS3 - 变换(Transform)的使用,以及变换的过渡
    1
    2
    3
    4
    5
    .rotatedElement {
        transform: scale(1.2) translateX(30px) skew(-15deg);
        -ms-transform: scale(1.2) translateX(30px) skew(-15deg);
        -webkit-transform: scale(1.2) translateX(30px) skew(-15deg);
    }

    (3)修改默认参照点。
    一般变换是以元素的中心点为参照点的。可以通过在应用变换前用 transform-origin 属性来移动这个参照点。
    比如:

    transform-origin: 0% 0%;    表示左上角为参照点
    transform-origin: 100% 0%;    表示右上角为参照点
    transform-origin: 50% 200%;    表示参照点x坐标是元素水平方向的中间,y坐标是从上边缘向下两倍于元素高度的地方。
    下面让元素围绕元素的左上角旋转45度:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    .rotatedElement {
        transform-origin: 0% 0%;
        -ms-transform-origin: 0% 0%;
        -webkit-transform-origin: 0% 0%;
     
        transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
    }

    (4)移除所有的变换效果

    要移除所有的变换效果,可将 transform 属性设置为 none
    1
    2
    3
    4
    5
    .rotatedElement {
        transform: none;
        -ms-transform: none;
        -webkit-transform: none;
    }


    3,3D变换

    除了在二维空间移动元素,CSS3还可以用3D变换在三维空间移动、旋转和弯曲元素。


    4,使用变换的过渡

    通常变换和过渡是组合使用的。比如下面以一个在线影集为例,当鼠标移动到图片上时,图片会旋转并放大。而鼠标离开时,图片又会收缩并回到原位。这些变换是有过渡效果的。
     

    在线演示如下:

     

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <!doctype html>
    <html lang="en">
        <head>
        <title>hangge.com</title>
        <style>
            .gallery {
                margin:0px 30px 0px 30px;
                background#D8EEFE;
                padding10px;
            }
     
            .gallery img{
                margin5px;
                padding5px;
                width75px;
                bordersolid 1px black;
                backgroundwhite;
                transition: all 1s;
                -webkit-transition: all 1s;
            }
     
            .gallery img:hover {
                transform: scale(2.2) rotate(10deg);
                -ms-transform: scale(2.2) rotate(10deg);
                -webkit-transform: scale(2.2) rotate(10deg);
            }
        </style>
    </head>
    <body style="padding-top:100px">
        <div class="gallery">
            <img src="g1.jpg"/>
            <img src="g2.jpg"/>
            <img src="g3.jpg"/>
            <img src="g4.jpg"/>
        </div>
    </body>
    </html>
  • 相关阅读:
    6-stm32 滴答定时器(delay不带中断延时)
    5-stm32 滴答定时器(delay中断延时)
    4- stm32 gpio重映射
    3- stm32 gpio寄存器
    2-stm32 gpio位带
    Linux Command
    DIV+CSS规范命名
    JS事件报错之Cannot set property 'onclick' of null
    创建对象的三种方式
    密码的显示和隐藏
  • 原文地址:https://www.cnblogs.com/Cc-ll/p/8260470.html
Copyright © 2011-2022 走看看