zoukankan      html  css  js  c++  java
  • 纯css制作电闪雷鸣的天气图标

    效果

    效果图如下

    实现思路

    1. 使用box-shadow属性写几个圆,将这些圆错落的组合在一起,形成云朵图案
    2. after伪元素写下面的投影样式
    3. before伪元素写黄色闪电的样式

    dom结构

    用两个嵌套的div容器就可以了,父容器来控制图标显示的位置,子容器用来写乌云的样式。而阴影和闪电的样式都用伪元素就可以了,这些都是在css中定义的。

    <div class="container">
        <div class="stormy"></div>
    </div>

    css样式

    css按照步骤来实现

    1、先写父容器样式,顺便给整个页面加个背景色,方便预览

    body{
        background: rgba(73,74,95,1);
    }
    
    .container{
         170px;
        height: 170px;
        position: relative;
        margin: 250px auto;
    }

    2、写乌云的样式,别忘了乌云有一个上下移动的动画效果

    .stormy{
         50px;
        height: 50px;
        position: absolute;
        left: 80px;
        top: 70px;
        margin-left: -60px;
        background: #222;
        border-radius: 50%;
        box-shadow: #222 64px -15px 0 -5px,
            #222 25px -25px,
            #222 30px 10px,
            #222 60px 15px 0 -10px,
            #222 85px 5px 0 -5px;
        animation: stormy 5s ease-in-out infinite;
    }
    
    @keyframes stormy{
        50%{
            transform: translateY(-20px);
        }
    }

    3、阴影样式,同样是有动画的

    .stormy::after{
        content: '';
         120px;
        height: 15px;
        position: absolute;
        left: 5px;
        bottom: -60px;
        background: #000;
        border-radius: 50%;
        opacity: 0.2;
        transform: scale(0.7);
        animation: stormy_shadow 5s ease-in-out infinite;
    }
    
    @keyframes stormy_shadow{
        50%{
            transform: translateY(20px) scale(1);
            opacity: 0.05;
        }
    }

    佛山vi设计https://www.houdianzi.com/fsvi/ 豌豆资源搜索大全https://55wd.com

    4、闪电样式

    .stormy::before{
        display: block;
        content: '';
         0;
        height: 0;
        position: absolute;
        left: 57px;
        top: 70px;
        border-left:  0px solid transparent;
        border-right: 7px solid transparent;
        border-top: 43px solid yellow;
        box-shadow: yellow -7px -32px;
        transform:  rotate(14deg);
        transform-origin: 50% -60px;
        animation: stormy_thunder 2s steps(1, end) infinite;
    }
    
    @keyframes stormy_thunder{
        0%{
            transform: rotate(20deg);
            opacity: 1;
        }
        5%{
            transform: rotate(-34deg);
            opacity: 1;
        }
        10%{
            transform: rotate(0deg);
            opacity: 1;
        }
        15%{
            transform: rotate(-34deg);
            opacity: 0;
        }
    }

    OK,搞定。按着步骤来,你也可以在你的页面上实现酷炫的电闪雷鸣天气图标咯~

  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13834525.html
Copyright © 2011-2022 走看看