[兔了个兔]——兔子烟花

271 阅读2分钟

我正在参加「兔了个兔」创意投稿大赛,详情请看:「兔了个兔」创意投稿大赛

前言

过年少不了烟花,小时候除夕那晚烟花声可以响一整晚,当时觉得吵,现在是无比怀念。今天做个简单的兔子烟花送给大家,最终效果如下:

123.gif

实现

想要实现烟花这个效果,我们可以分成两步: 1.上天过程:烟花从飞到天上的过程; 2.爆炸过程:烟花绽放出烟花兔子图案的过程; 这两个步骤主要运用到了css中animationtransform属性。

上天

首先我们需要创建出烟花最初的状态——烟花块,运用定位属性将烟花块放到底部。上天过程运用动画,改变烟花块的bottom属性,再利用transformscale实现烟花块‘消失’效果。

    <div class="wrapper">
    </div>
    <div class="fire"></div>
     body {
        background: black;
      }
      .wrapper {
        width: 100%;
        margin: 0 auto;
      }
    .fire {
        width: 5px;
        height: 10px;
        background: #ee0a0a;
        position: absolute;
        left: 50%;
        bottom: 10%;
        animation: fireFrames 2s ease-out infinite;
      }
        @keyframes fireFrames {
        0% {
          bottom: 10%;
        }
        100% {
          bottom: 50%;
          transform: scale(0);
        }
      }

爆炸

当烟火块‘消失’的时候,烟火跟兔子就得出现啦,这一步我们用图片+缩放就能方便实现,用了一种‘偷懒’的方式实现了爆炸。找到图片,利用动画,让它从scale(0)变到scale(2)实现爆炸放大效果;设置opacity属性再让烟花‘消失’,为了看起来更加真实一点我们在爆炸动画设置delay延迟属性

    <div class="wrapper">
      <img class="work bomb" src="./images/fire.png" alt />
      <img class="work rabbit" src="./images/rabbit.png" alt />
    </div>
     .work {
        position: absolute;
        left: 48%;
        top: 50%;
      }
    .bomb{
        transform: scale(0);
        animation: workFrames 2s 2s infinite;
      }
      .rabbit{
        opacity: 0.5;
        animation: rabbitFrames 2s 1s infinite;
      }
      @keyframes bombFrames {
        0% {
          transform: scale(0);
        }
        100% {
          transform: scale(2);
          opacity: 0;
        }
      }
      @keyframes rabbitFrames {
        0% {
          opacity: 0.5;
        }
        100% {
          opacity: 0;
        }
      }  

将动画次数属性设置为infinite(无限),烟花就能一直爆炸,整个烟花效果也就出来啦。

总结

以上就是兔子烟花的实现过程,主要运用了css动画属性,各种样式根据自己喜欢调整即可。爆竹声声辞旧岁,烟花朵朵迎新春。