CSS属性-filter用法

filter是css的一种属性,它去取值有以下几种:

  • blur(),作用是调整元素的模糊度

  • brightness() 指的是图片的亮度 (默认为1)如果给0则是全黑

  • contrast() 指的是图片的对比度 (默认为1) 可以设置为百分比

  • grayscale() 指的是改变图片的灰度 (默认是0) 可以设置百分比

  • hue-rotate() 指的是图片色相旋转

  • invert(): 指的是反转输入的图片颜色

  • opacity():指的是图片的透明度

  • saturate():指的是图像饱和度 0是灰色的 100%是完整的填充 超过100% 饱和度更高

  • sepia() 图像转换为深褐色

接下来就重点介绍几个属性:

blur(),contrast(), hue-rotate()

1.完成子弹飞出去带尾巴的效果

代码如下:

<div class="box">
     <ul class="ul1">
         <li></li>
     </ul>
</div>

<style>
    *{
        margin: 0;
        padding: 0;
    }
    body {
        background-color: #ccc;
    }
    .box {
        filter: contrast(10);
        width: 400px;
        height: 300px;
        background-color: yellow;
    }
    .ul1 {
        width: 80px;
        height:300px;
        background-color: green;
        filter: blur(5px);
        position: relative;
        float: left;
    }
    .ul1 li {
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background-color: blue;
        filter: blur(5px);
        position: absolute;
        animation: rotate1 2s linear infinite;
    }
    .ul1 li:nth-child(1) {
        top: 20px;
        right: 20px;
    }
    @keyframes rotate1 {
        100% {
            top: 20px;
            right: -150px;
        }
    }
</style>

2.完成子弹飞对飞带尾巴的效果

代码如下:

<div class="box">
    <ul class="ul1">
        <li></li>
    </ul>
    <ul class="ul2">
        <li></li>
    </ul>
</div>
<style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            background-color: #ccc;
        }
        .box {
            filter: contrast(10);
            width: 400px;
            height: 300px;
            background-color: yellow;
            overflow: hidden;
        }
        .ul1 {
            width: 60px;
            height: 300px;
            background-color: green;
            filter: blur(5px);
            position: relative;
            float: left;
        }
        .ul1 li {
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background-color: blue;
            filter: blur(5px);
            position: absolute;
            animation: rotate1 10s linear infinite;
        }
        .ul1 li:nth-child(1) {
            /* 小球的初始位置 */
            top: 20px;
            right: 20px;
        }
        /* 右侧小球 */
        .ul2 {
            width: 60px;
            height: 300px;
            background-color: green;
            filter: blur(3px);
            position: relative;
            float: right;
        }
        .ul2 li {
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background-color: rgba(99, 19, 228, 0.692);
            filter: blur(5px);
            position: absolute;
            animation: rotate2 10s linear infinite;
        }
        .ul2 li:nth-child(1) {
            top: 20px;
            left: 20px;
        }
        @keyframes rotate1 {
            100% {
                top: 20px;
                right: -350px;
                display: none;
            }
        }
        @keyframes rotate2 {
            100% {
                top: 20px;
                left: -300px;
                display: none;
            }
        }
   </style>

3.完成两子弹碰撞后一起回收到底部效果

代码如下:

<div class="box">
        <ul class="ul1">
            <li></li>
            <li></li>
        </ul>
        <ul class="ul2">
            <li></li>
            <li></li>
        </ul>
        <ul class="ul3">
        </ul>
</div>
<style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            background-color: #ccc;
        }
        .box {
            filter: contrast(10);
            width: 400px;
            height: 300px;
            background-color: yellow;
            overflow: hidden;
        }
        .ul1 {
            width: 60px;
            height: 140px;
            background-color: green;
            filter: blur(5px);
            position: relative;
            float: left;
        }
        .ul1 li {
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background-color: blue;
            filter: blur(5px);
            position: absolute;
            animation: rotate1 10s linear infinite;
        }
        .ul1 li:nth-child(1) {
            /* 小球的初始位置 */
            top: 0;
            right: -80px;
        }
        .ul1 li:nth-child(2) {
            top: 20px;
            right: 20px;
        }
        /* 右侧小球 */
        .ul2 {
            width: 60px;
            height: 140px;
            background-color: green;
            filter: blur(5px);
            position: relative;
            float: right;
        }
        .ul2 li {
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background-color: rgba(151, 6, 187, 0.692);
            filter: blur(5px);
            position: absolute;
            animation: rotate2 10s linear infinite;
        }
        .ul2 li:nth-child(1) {
            top: 0;
            left: -80px;
        }
        .ul2 li:nth-child(2) {
            top: 20px;
            left: 20px;
        }
        .ul3 {
            width: 260px;
            height: 40px;
            background-color: green;
            filter: blur(5px);
            position: relative;
            top: 270px;
            left: 50%;
            margin-left: -130px;
        }
        @keyframes rotate1 {
            10% {
                filter: contrast(4) hue-rotate(34deg);
            }
            50% {
                right: -100px;
                filter: contrast(8) hue-rotate(160deg);
            }
            60% {
                top: 150px;
                right: -150px;
                filter: contrast(18) hue-rotate(860deg);
            }
            80% {
                top: 260px;
                right: -150px;
                filter: contrast(18) hue-rotate(2360deg);
            }
            100% {
                top: 450px;
                right: -150px;
                filter: contrast(18) hue-rotate(160deg);
            }
        }
        @keyframes rotate2 {
            10% {
                filter: contrast(4) hue-rotate(34deg);
            }
            50% {
                left: -100px;
                filter: contrast(11) hue-rotate(334deg);
            }
            60% {
                top: 150px;
                left: -150px;
                filter: contrast(18) hue-rotate(660deg);
            }
            80% {
                top: 260px;
                left: -150px;
                filter: contrast(18) hue-rotate(1660deg);
            }
            100% {
                top: 450px;
                left: -150px;
                filter: contrast(18) hue-rotate(660deg);
            }
        }
</style>
以上案例主要应用的属性filter,属性值是blur,由于blur的特点是多个元素相互碰撞会出现融合,所以就有了上面的小尾巴的效果,而属性值hue-rotate()这个高斯函数的含义就是图片色相旋转,设置不同的度数可以实现不同的颜色值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值