- type="text/javascript">
- (function(Windows, document, undefined) {
- var hearts = [];
- Windows.requestAnimationFrame = (function() {
- return Windows.requestAnimationFrame || Windows.webkitRequestAnimationFrame || Windows.mozRequestAnimationFrame || Windows.oRequestAnimationFrame || Windows.msRequestAnimationFrame ||
- function(callback) {
- setTimeout(callback, 1000 / 60);
- }
- })();
- init();
- function init() {
- CSS(".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: absolute;}.heart:after{top: -5px;}.heart:before{left: -5px;}");
- attachEvent();
- gameloop();
- }
- function gameloop() {
- for (var i = 0; i < hearts.length; i++) {
- if (hearts[i].alpha <= 0) {
- document.body.removeChild(hearts[i].el);
- hearts.splice(i, 1);
- continue;
- }
- hearts[i].y--;
- hearts[i].scale += 0.004;
- hearts[i].alpha -= 0.013;
- hearts[i].el.style.cssText = "left:" + hearts[i].x + "px;top:" + hearts[i].y + "px;opacity:" + hearts[i].alpha + ";transform:scale(" + hearts[i].scale + "," + hearts[i].scale + ") rotate(45deg);background:" + hearts[i].color;
- }
- requestAnimationFrame(gameloop);
- }
- function attachEvent() {
- var old = typeof Windows.onclick === "function" && Windows.onclick;
- Windows.onclick = function(event) {
- old && old();
- createHeart(event);
- }
- }
- function createHeart(event) {
- var d = document.createElement("div");
- d.className = "heart";
- hearts.push({
- el: d,
- x: event.clientX - 5,
- y: event.clientY - 5,
- scale: 1,
- alpha: 1,
- color: randomColor()
- });
- document.body.appendChild(d);
- }
- function CSS(CSS) {
- var style = document.createElement("style");
- style.type = "text/css";
- try {
- style.appendChild(document.createTextNode(CSS));
- } catch(ex) {
- style.styleSheet.cssText = CSS;
- }
- document.getElementsByTagName('head')[0].appendChild(style);
- }
- function randomColor() {
- return "rgb(" + (~~ (Math.random() * 255)) + "," + (~~ (Math.random() * 255)) + "," + (~~ (Math.random() * 255)) + ")";
- }
- })(Windows, document);
来源: http://www.bubuko.com/infodetail-3123945.html