JSFiddle - React, Tailwind, and code Playground

by Su YangCheng

HTML

<div class="w-t">
  <div class="w-t-m">老公,嫁给我好吗?</div>
  <img src="//sunweiling.github.io/wedding/png/boom.png" alt="" class="boom1">
  <img src="//sunweiling.github.io/wedding/png/boom.png" alt="" class="boom2">
  <img src="//sunweiling.github.io/wedding/png/boom.png" alt="" class="boom3">
</div>
<div class="w-p">
  <div class="w-m">
    <img src="//sunweiling.github.io/wedding/png/man.png" alt="">
  </div>
  <div class="w-w">
    <img src="//sunweiling.github.io/wedding/png/woman.png" alt="">
  </div>
  <div class="w-f">
    <img src="//sunweiling.github.io/wedding/png/flower.png" alt="">
  </div>
</div>
<div class="w-fls">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
</div>
<div class="w-fls w-2">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers1.png" alt="">
  <img src="//sunweiling.github.io/wedding/png/flowers2.png" alt="">
</div>

SCSS

// 烟花字体
.w-t {
    margin: 100px auto;
    width: 500px;
    img {
        opacity: 0;
        animation: bloom 2s ease 1.2s infinite;
        &.boom2 {
            float: right;
            animation: bloom 2s ease 1.5s infinite;
        }
        &.boom3 {
            position: absolute;
            margin-top: 40px;
            animation: bloom 2s ease 1.4s infinite;
        }
    }
}

@keyframes bloom {
    0% {
        transform: scale(0, 0);
    }
    100% {
        opacity: 1;
        transform: scale(1, 1);
    }
}

.w-t-m {
    position: absolute;
    left: 50%;
    z-index: 10;
    line-height: 80px;
    color: #ff720a;
    letter-spacing: 5px;
    opacity: 0;
    animation: titleBloom 1s linear 1s both;
    font-size: 26px;
    margin-left: -125px;
}

@keyframes titleBloom {
    0% {
        transform: translate(-50px);
    }
    100% {
        opacity: 1;
        transform: translate(0);
    }
}


// 人物类
.w-p {
    margin: -50px auto;
    width: 1000px;
    overflow: hidden;
    &:after {
        clear: both;
        clear: both;
        content: '.';
        display: block;
        height: 0;
        visibility: hidden;
        overflow: hidden;
    }
}

.w-m {
    float: left;
    width: 50%;
    img {
        margin-right: 0;
        float: right;
        margin-top: 60px;
        animation: toWoman 0.5s ease .5s both;
    }
}

@keyframes toWoman {
    0% {
        opacity: 0;
        transform: translate(-200px);
    }
    100% {
        opacity: 1;
        transform: translate(0);
    }
}

.w-w {
    float: right;
    width: 50%;
    img {
        margin-left: 0;
        float: left;
        animation: showW 0.8s ease 0s both;
    }
}

@keyframes showW {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.w-f {
    position: absolute;
    z-index: 20;
    left: 50%;
    margin-left: -30px;
    margin-top: 75px;
    img {
        width: 60px;
        animation: show 0.4s ease 1s both;
    }
}

@keyframes show {
    0% {
   ...

JavaScript

$('head').append('<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">');