【521个爱心】

一、源码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>hearts</title>
    <style type="text/css">
    * {
        padding: 0;
        margin: 0;
    }

    body {
       background:sienna;
        overflow: hidden;
    }

    /**
 	 * 主容器
 	 */
    div#main {
        width: 100vw;
        height: 100vh;
    }

    /**
 	 * 显示文字
 	 */
    h1#text {
        color: #FFF;
        text-align: center;
    }

    /**
     * heart标签的样式,一个红色的正方形,
     * 将最终图像旋转45度,并置于缩小一半、半透明状态,
     * 设置无限的动效
     * 单次动效时间3s
     */
    heart {
        position: absolute;
        width: 20px;
        height: 20px;
        background: #e74c3c;
        transform: rotate(45deg) scale(.5);
        opacity: .5;
        animation-name: scale, opacity;
        animation-duration: 3s;
        animation-iteration-count: infinite;
    }

    /**
     * 用伪类在heart之前画个圆并左移十像素
     */
    heart::before {
        position: absolute;
        content: '';
        width: 20px;
        height: 20px;
        background: #e74c3c;
        border-radius: 50%;
        transform: translateX(-10px);
    }

    /**
     *用伪类在heart之后画个圆并上移十像素
     */

    heart::after {
        position: absolute;
        content: '';
        width: 20px;
        height: 20px;
        background: #e74c3c;
        border-radius: 50%;
        transform: translateY(-10px);
    }

    /**
     * 跳动动效
     */
    @keyframes scale {

        25%,
        75% {
            transform: rotate(45deg) scale(1);
        }

        50%,
        100% {
            transform: rotate(45deg) scale(.5);
        }
    }

    /**
     * 改变透明度
     */
    @keyframes opacity {

        25%,
        75% {
            opacity: 1;
        }

        50%,
        100% {
            opacity: .5;
        }
    }
    </style>
</head>

<body>
    <div id="main">
        <h1 id="text"></h1>
    </div>
</body>
<script type="text/javascript">
//获取父容器
var mainObj = document.getElementById('main')
//获取文本容器
var textObj = document.getElementById('text')
//获取浏览器的高度
var innerWidth = document.body.clientWidth
var innerHeight = document.body.clientHeight

//计数器
var number = 0

/**
 * 持续出心,直到数量为521,位置随机生成
 */
var interval = setInterval(function() {
    var heart = document.createElement('heart')
    heart.style.left = Math.floor(Math.random() * innerWidth) + 'px'
    heart.style.top = Math.floor(Math.random() * innerHeight) + 'px'
    mainObj.appendChild(heart)
    number++
    textObj.innerHTML = '送你' + number + '个爱心,请查收!'
    //当心的数量达到521时结束
    if (number >= 521) {
        clearInterval(interval)
    }
}, 50)
</script>

</html>

二、效果图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值