画一个爱心逐渐放大再缩小的循环的特效

25 min read

很愉快地为您提供这个特效,请参考以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Heart Animation</title>
    <style>
        #heart {
            position: relative;
            top: 50%;
            left: 50%;
            width: 100px;
            height: 80px;
            transform: translate(-50%, -50%);
            animation: pulse 5s ease-in-out infinite;
        }
        #heart:before,
        #heart:after {
            content: "";
            position: absolute;
            top: 0;
            left: 50px;
            width: 50px;
            height: 80px;
            border-radius: 50px 50px 0 0;
            background-color: red;
            transform: rotate(-45deg);
            transform-origin: 0 100%;
        }
        #heart:after {
            left: 0;
            transform: rotate(45deg);
            transform-origin: 100% 100%;
        }
        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(2); }
            100% { transform: scale(1); }
        }
    </style>
</head>
<body>
    <div id="heart"></div>
</body>
</html>

通过以上代码,我们使用了CSS3动画,实现了一个5秒的爱心放大和缩小的动画效果。关键在于定义了一个pulse动画,通过keyframes定义,让该动画在0%到50%时间范围内放大,50%到100%时间范围内再缩小。这样,就实现了心形图形的放大和缩小特效。