zoukankan      html  css  js  c++  java
  • 15.3D效果,盒阴影和滤镜

    今天所学的东西,其实与前一篇的内容有较多的相似点,只是应用的规则有些许的变化

    A.3D样式效果;  

       在默认情况下, 我们看到的其实是个2D的平面效果,只有X,Y二个轴,如果想要看到3D效果,我们需要增加一个Z轴;  这样我们就生成了一个三维坐标系。

      新增的Z轴,大家一般也称之为“景深效果”。

       ** 我们通过给父级元素,增加一个 perspective 的属性,来为父级元素增加一个Z轴, 本属性的值,就相当于观察点距离XY平面的距离了;

           默认情况下,Z轴并不是在X,Y轴的交叉点上,而是在X,Y平面上,父级元素的正中心点上;即父元素宽高的50%交叉点上;,这一点与我们前一篇所讲的变化样式有点相似, 这个Z轴所在的位置,我们可能通过

    perspective-origin来进行控制; 默认情况下,这个值为 50% 50%; 当我们变更这个值时,就可以变更我们视觉位置点了

    在上一篇文章中,我们知道,我们可以在X,Y轴方向上做不同的变化样式,其实这些变化样式也可应用到我们的Z轴上来

    a. rotate(旋转角度), 默认情况下,我们的旋转就是围绕着Z轴来旋转的(就是上一篇所讲的元素原点);

        我们也可以通过rotageX, rotageY来控制元素在三维坐标系中绕着X转,Y轴来旋转

       

     在Z轴上,有一个变化样式是需要特别注意的, 那就是偏移,由于我们在设置景深时是指定了视觉点的,

    如果我们在Z轴上正向偏移,元素距离我们的视觉点就会更近一些,通过相似等比原则,我们在屏幕上看见的效果就会是元素变大了,

    而当我们在Z轴上做负向偏移时,由于元素与我们的视觉点远了,所以视觉上,元素就变小了;

    B. 阴影效果

        关于盒阴影效果,其实只是对一个效果的设置;

        box-shadow: X方向偏移量 Y方向偏移量 阴影模糊距离 阴影缩放 阴影颜色 阴影展示方式

        关于阴影应用的参数中,对于四号参数:阴影缩放,这个值并不是说像scale样式一样进行缩放处理, 而是在原有的阴影尺寸上进行尺寸的增加或扣减少操作;

        可理解为在原尺寸上的变化尺寸,正值表示在原尺寸上增加,为负值,表示在原尺寸上进行扣减操作;

        下面我们通过一伪类选择器的效果来演示阴影的效果

        

    C.滤镜样式

       关于滤镜样式,当前接触的也不多,我们通过 filter:可以设置滤镜样式;

       在这里就讲几个常用的滤镜效果

       1).filter:brightness(倍数);当倍数值大于1的时候元素会变亮,小于1的时候元素会变暗 
           --> 该属性的作用为调整元素当前的亮度,一般来说可以适用于鼠标悬浮到某元素时的提醒作用

        2).filter:contrast(百分比);所谓对比度,简单理解的话就是一个区域里面每个颜色都会变得格外显眼,黑的更黑,白的更白

           --> 当元素只有一种颜色时,该属性看效果和变亮看上去差不多,如果我们给该元素设置一个背景图片的话,那就是另一回事了

        3).filter:blur(模糊半径);给图像设置高斯模糊。模糊半径的值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊;

        4).filter:grayscale();该属性的作用较为简单,就是将一个颜色复杂的区域改造成一个只有黑白二色的区域。圆括号里面的值定义转换的比例。

          --> 值为100%则完全转为灰度图像,值为0%图像无变化。值在0%到100%之间,则是效果的线性乘子。若未设置,值默认是0;

         5). filter:sepia();该属性的作用同上,都是将某个区域的颜色进行简化,该属性会将一个颜色丰富的区域变成一种老黑白照片效果,让图片有一种轻微泛黄的样子

        关于滤镜效果的应用,依据各自不同的应用需求而定,本节中我们就不过多的详述了,看个例子吧

       

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            body {
                margin: 0;
                background-color: #000;
            }
            .shadow{
                position:relative;
                width: 500px;
                height: 500px;
                background-color: #000;
                margin:50px auto;
    
                 /*  */
                 filter:blur(20px) contrast(10);
            }
            .shadow>div{
                position:absolute;     
                top:0;
                right:0;
                bottom:0;
                left:0;
                margin:auto;     
                width: 100px;
                height: 100px;
                border-radius: 50%;
                background-color: #fff;           
               
            }
            .son1{
                transform: translateX(-150px);
            }
            .son2{
                animation: shadow 2s linear infinite alternate;
                
            }
            .son3{
                transform: translateX(150px);
            }
    
            @keyframes shadow{
                0%{
                    box-shadow: 350px 0 0 0 #fff;
                }
                100%{
                    box-shadow: -350px 0 0 0 #fff;
                }
            }
    
            
        </style>
    </head>
    
    <body>
        <div class="shadow">
            <div class="son1"></div>
            <div class="son2"></div>
            <div class="son3"></div>
        </div>
    </body>
    
    </html>
    View Code
  • 相关阅读:
    POJ2993——Emag eht htiw Em Pleh(字符串处理+排序)
    POJ2109——Power of Cryptography
    POJ2993——Help Me with the Game(字符串处理+排序)
    POJ1573——Robot Motion
    POJ2632——Crashing Robots
    POJ1068——Parencodings
    POJ3295——Tautology
    POJ2506——Tiling
    POJ2524——Ubiquitous Religions
    性能问题“三板斧”
  • 原文地址:https://www.cnblogs.com/jieling/p/11042703.html
Copyright © 2011-2022 走看看