-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclick_heart.js
73 lines (73 loc) · 2.19 KB
/
click_heart.js
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
70
71
72
73
!(function(e, t, a) {
function r(e) {
var a = t.createElement("div");
(a.className = "heart"),
n.push({
el: a,
x: e.clientX - 5,
y: e.clientY - 5,
scale: 1,
alpha: 1,
color:
"rgb(" +
~~(255 * Math.random()) +
"," +
~~(255 * Math.random()) +
"," +
~~(255 * Math.random()) +
")"
}),
t.body.appendChild(a);
}
var n = [];
(e.requestAnimationFrame =
e.requestAnimationFrame ||
e.webkitRequestAnimationFrame ||
e.mozRequestAnimationFrame ||
e.oRequestAnimationFrame ||
e.msRequestAnimationFrame ||
function(e) {
setTimeout(e, 1e3 / 60);
}),
(function(e) {
var a = t.createElement("style");
a.type = "text/css";
try {
a.appendChild(t.createTextNode(e));
} catch (t) {
a.styleSheet.cssText = e;
}
t.getElementsByTagName("head")[0].appendChild(a);
})(
".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"
),
(function() {
var t = "function" == typeof e.onclick && e.onclick;
e.onclick = function(e) {
t && t(), r(e);
};
})(),
(function e() {
for (var a = 0; a < n.length; a++)
n[a].alpha <= 0
? (t.body.removeChild(n[a].el), n.splice(a, 1))
: (n[a].y--,
(n[a].scale += 0.004),
(n[a].alpha -= 0.013),
(n[a].el.style.cssText =
"left:" +
n[a].x +
"px;top:" +
n[a].y +
"px;opacity:" +
n[a].alpha +
";transform:scale(" +
n[a].scale +
"," +
n[a].scale +
") rotate(45deg);background:" +
n[a].color +
";z-index:99999"));
requestAnimationFrame(e);
})();
})(window, document);