zoukankan      html  css  js  c++  java
  • WEB前端第十六课——转换及过渡

    1.transform 2D转换

      transform的属性通过函数进行定义,2D函数包括:translate()、scale()、rotate()、skew() 

      书写格式:transform: 函数名(X,Y)

      可以同时定义多个函数,函数之间通过“空格”隔开

      transform-origin 用于设置转换元素的基点位置(包括Z轴)

    2.translate(Xpx,Ypx) 转换,通过设定参数,从当前元素位置沿着X轴和Y轴移动,允许一个值(X轴移动)

                参数允许负值,默认左上角为(0,0)坐标,X为负值向左移动,Y为负值向上移动

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSStransform</title>
        <style>
            .trans{
                 200px;
                height: 400px;
                background-color: orangered;
                margin: 100px auto;
            }
            .trans:hover{
                transform: translate(5px,-5px);
                box-shadow: 3px 3px 5px 2px #9f9f9f;
            }
        </style>
    </head>
    <body>
    <div class="trans"></div>
    </body>
    </html>
    

    3.rotate(deg) 旋转,元素顺时针旋转设定的角度,参数为负值时,元素将逆时针旋转

           参数值只有一个,单位为 deg

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSS_transform</title>
        <style>
            .trans{
                 200px;
                height: 400px;
                background-color: orangered;
                margin: 100px auto;
            }
            .trans:hover{
                box-shadow: 3px 3px 5px 2px #9f9f9f;
                transform: rotate(60deg) translate(5px,-5px);
            }
        </style>
    </head>
    <body>
    <div class="trans"></div>
    </body>
    </html>
    

    4.scale(m,n)缩放,通过设置参数值将原始尺寸缩放m/n倍,m值代表宽,n值代表高,允许一个值

              默认值为1,0~1表示缩小,大于1表示放大

            .trans:hover{
                box-shadow: 3px 3px 5px 2px #9f9f9f;
                transform: rotate(60deg) translate(5px,-5px) scale(0.5);
            }
    

    5.skew(Xdeg,Ydeg)元素的倾斜角度,沿水平(X轴)和垂直(Y轴)翻转元素

              允许一个值,表示水平轴的角度

            .trans:hover{
                /*transform: rotate(60deg) translate(5px,-5px) scale(1.2,0.5);*/
                box-shadow: 3px 3px 5px 2px #9f9f9f;
                transform: skew(-30deg,80deg);
            }
    

    6.transform3D转换

      常用函数有:translate()、scale()、rot(),没有skew()函数

      在2D的基础上增加 Z轴参数设置,即 translate(X,Y,Z)、scale(X,Y,Z)、rot(X,Y,Z),也可以分别设置XYZ参数

      实现3D效果,父元素需要设置 perspective属性,定义元素被查看位置的视图效果(距离),当父元素定义了 perspective属性时,其子元素会获得透视效果,而非父元素本身

      perspective-origin(X轴值,Y轴值),用于定义3D元素的基点位置(可不设置),默认值为(50% 50%),类似perspective属性其设置对子元素生效

      perspective 既可以单独作为属性使用(书写格式 perspective: 300px),也可以作为 transform的属性函数使用(书写格式 transform: perspective(300px)

    7.translate3d(x,y,z) 3D效果

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSS_transform</title>
        <style>
            .trans{
                 500px;
                height: 500px;
                margin: 100px auto;
                background-color: #787772;
                perspective: 300px;
            }
            .son{
                 500px;
                height: 500px;
                margin: 100px auto;
                background-color: #ef4222;
                transition: all 8s;
            }
            .son:hover{
                transform: translate3d(200px,-200px,-800px);
            }
        </style>
    </head>
    <body>
    <div class="trans">
        <div class="son"></div>
    </div>
    </body>
    </html>
    

    8.scale3d(x,y,z) 3D效果

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSS_transform</title>
        <style>
            .trans{
                 500px;
                height: 500px;
                margin: 100px auto;
                background-color: #787772;
                perspective: 500px;
            }
            .son{
                 500px;
                height: 500px;
                margin: 100px auto;
                background-color: #ef4222;
                transition: all 5s;
                transform: scale(0.2)
            }
            .son:hover{
                transform:scale3d(0.5,0.9,1.7);   /*Z轴转换效果不明显*/
            }
        </style>
    </head>
    <body>
    <div class="trans">
        <div class="son"></div>
    </div>
    </body>
    </html>
    

    9.rotate3d(x,y,z) 3D效果

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSS_transform</title>
        <style>
            .trans{
                 500px;
                height: 500px;
                margin: 100px auto;
                background-color: #787772;
                perspective: 500px;
            }
            .son{
                 500px;
                height: 200px;
                transition: all 5s;
                background: linear-gradient(45deg,yellowgreen,#ef4222);
            }
            .son:hover{
                transform:scale3d(0.5,2,5) rotatez(180deg) ;
            }
        </style>
    </head>
    <body>
    <div class="trans">
        <div class="son"></div>
    </div>
    </body>
    </html>
    

    10.transition过渡,通过该属性使元素从一种样式逐渐变为另一种样式的效果

      过渡属性包括:

      transition-property(需要应用过渡的CSS属性名称)、transition-duration(过渡效果持续的时间,默认0s)、transition-timing-function(过渡效果的时间曲线)、transition-delay(过渡效果何时开始,默认0s)

      transition-property属性值:none(无)、all(全部)、property name(具体名称),可同时过渡多个属性,属性之间使用“逗号”隔开

      transition-timing-function属性值:

        linear,规定开始至结束以相同速度的过渡效果(匀速)

        ease,默认值,规定慢速开始、然后变快、再慢速结束的过渡效果(先快后慢)

        ease-in,规定以慢速开始的过渡效果(加速)

        ease-out,规定以慢速结束的过渡效果(减速)

        ease-in-out,规定以慢速开始和结束的过渡效果(先加速后减速)

        cubic-bezier(n,n,n,n),自定义过渡效果,n为0~1之间的数值

      可设置过渡的属性:

        颜色属性

        取值为数值的属性

        转换属性

        渐变属性

        阴影属性

    <html>
    <head>
        <meta charset="utf-8">
        <title>CSS_transform</title>
        <style>
            .trans{
                 500px;
                height: 200px;
                margin: 100px auto;
                background-color: yellowgreen;
                transition: all 5s linear 1s;
            }
            .trans:hover{
                background-color: #ef4222;
            }
        </style>
    </head>
    <body>
        <div class="trans"></div>
    </body>
    </html>
    

      

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/husa/p/13430599.html
Copyright © 2011-2022 走看看