JavaScript 实现点击爱心效果

可放在网页任何位置,以下是代码:

<script>
(function (e, t) {
  function r() {
    s = s.filter((e) => {
      e.alpha <= 0 ? (t.body.removeChild(e.el), e = null) : (e.y--, e.scale += .004, e.alpha -= .013, e.el.style.cssText = `left:${e.x}px;top:${e.y}px;opacity:${e.alpha};transform:scale(${e.scale},${e.scale}) rotate(45deg);background:${e.color};z-index:99999`);
      return e;
    });
    requestAnimationFrame(r);
  }

  function n() {
    e.onclick = function (e) {
      o(e);
    };
  }

  function o(e) {
    const a = t.createElement("div");
    a.className = "heart", s.push({ el: a, x: e.clientX - 5, y: e.clientY - 5, scale: 1, alpha: 1, color: c() });
    t.body.appendChild(a);
  }

  function i(e) {
    const a = t.createElement("style");
    a.type = "text/css";
    try {
      a.appendChild(t.createTextNode(e));
    } catch (t) {
      a.styleSheet.cssText = e;
    }
    t.head.appendChild(a);
  }

  function c() {
    return `rgb(${~~(255 * Math.random())},${~~(255 * Math.random())},${~~(255 * Math.random())})`;
  }

  let s = [];
  e.requestAnimationFrame = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {
    setTimeout(e, 1e3 / 60);
  };

  i(".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;}");
  n();
  r();
})(window, document);
</script>
posted @   小野兔汁  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
点击右上角即可分享
微信分享提示