心脏怦怦跳

最后更新时间: 2018-08-18 | 作者: AberSheeran | 捐助

昨天是七夕,我没想到有什么好礼物送我媳妇儿,就花了一下午用CSS画了一颗心给她,挂在了给她买的.我爱你域名下。

心跳这个动画,一开始我是想控制心脏的大小变化,但是发现纯CSS无法实现。思来想去,想到通过阴影的变化来让人眼认为这颗心的大小在变化。以下代码为样例代码,实际使用的时候,要控制整颗心的大小只需要改变.heart的高宽(但大小必须一致)。为了自适应屏幕可以用vmin这个单位,亲测50vmin的效果最好。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<div id="example" style="height: 260px; padding-top: 90px;">
    <div class="heart" style="margin: 0 auto;">
        <div class="left"></div>
        <div class="main"></div>
        <div class="right"></div>
    </div>
</div>

<style>
.heart {
    width: 160px;
    height: 160px;
    position: relative;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    background-color: rgba(255, 15, 24, 1);
    border-radius: 10%;
    animation: heartbeat 1s infinite linear;
}

.heart .main {
    position: absolute;
    z-index: 1;
    top: -2.5%;
    right: 0;
    bottom: 0;
    left: -3.8%;
    border-radius: 10%;
    background-color: inherit;
}

.heart .left, .heart .right {
    position: absolute;
    z-index: -1;
    background-color: inherit;
    animation: heartbeat 1s infinite linear;
}

.heart .left {
    width: 100%;
    height: 100%;
    border-radius: 100%;
    bottom: 0;
    left: -43%;
}

.heart .right {
    width: 100%;
    height: 100%;
    border-radius: 100%;
    top: -43%;
    right: 0;
}

@keyframes heartbeat {
    0% {
        box-shadow: 0 0 10px black;
    }
    50% {
        box-shadow: 0 0 10px #ccc;
    }
    100% {
        box-shadow: 0 0 10px #eee;
    }
}
</style>
标签: CSS
收录于#杂记