查看: 898|回复: 1

[编程交流] 新年雪花代码

[复制链接]
发表于 2021-11-17 17:21 | 显示全部楼层 |阅读模式
蛤蟆皮 2021-11-17 17:21 898 1 显示全部楼层

新的一年又要来到,不妨为你的网站添加一点气氛,以下下雪代码,添加在网页的head标签中即可。

EMLOG建议添加在footer.php文件中。

  1. <script type="text/javascript" language="javascript">
  2. (function() {
  3.     function k(a, b, c) {
  4.         if (a.addEventListener) a.addEventListener(b, c, false);
  5.         else a.attachEvent && a.attachEvent("on" + b, c)
  6.     }
  7.     function g(a) {
  8.         if (typeof window.onload != "function") window.onload = a;
  9.         else {
  10.             var b = window.onload;
  11.             window.onload = function() {
  12.                 b();
  13.                 a()
  14.             }
  15.         }
  16.     }
  17.     function h() {
  18.         var a = {};
  19.         for (type in {
  20.             Top: "",
  21.             Left: ""
  22.         }) {
  23.             var b = type == "Top" ? "Y": "X";
  24.             if (typeof window["page" + b + "Offset"] != "undefined")
  25. a[type.toLowerCase()] = window["page" + b + "Offset"];
  26.             else {
  27. b = document.documentElement.clientHeight ? document.documentElement: document.body;
  28.                 a[type.toLowerCase()] = b["scroll" + type]
  29.             }
  30.         }
  31.         return a
  32.     }
  33.     function l() {
  34.         var a = document.body,
  35.         b;
  36.         if (window.innerHeight) b = window.innerHeight;
  37.         else if (a.parentElement.clientHeight) b = a.parentElement.clientHeight;
  38.         else if (a && a.clientHeight) b = a.clientHeight;
  39.         return b
  40.     }
  41.     function i(a) {
  42.         this.parent = document.body;
  43.         this.createEl(this.parent, a);
  44.         this.size = Math.random() * 11 + 11;
  45.         this.el.style.width = Math.round(this.size) + "px";
  46.         this.el.style.height = Math.round(this.size) + "px";
  47.         this.maxLeft = document.body.offsetWidth - this.size;
  48.         this.maxTop = document.body.offsetHeight - this.size;
  49.         this.left = Math.random() * this.maxLeft;
  50.         this.top = h().top + 1;
  51.         this.angle = 1.4 + 0.2 * Math.random();
  52.         this.minAngle = 1.4;
  53.         this.maxAngle = 1.6;
  54.         this.angleDelta = 0.01 * Math.random();
  55.         this.speed = 2 + Math.random()
  56.     }
  57.     var j = false;
  58.     g(function() {
  59.         j = true
  60.     });
  61.     var f = true;
  62.     window.createSnow = function(a, b) {
  63.         if (j) {
  64.             var c = [],
  65.             m = setInterval(function() {
  66.                 f && b > c.length && Math.random()
  67. < b * 0.0025 && c.push(new i(a)); ! f && !c.length && clearInterval(m);
  68.                 for (var e = h().top, n = l(), d = c.length - 1; d >= 0; d--)
  69. if (c[d]) if (c[d].top < e || c[d].top + c[d].size + 1 > e + n) {
  70.                     c[d].remove();
  71.                     c[d] = null;
  72.                     c.splice(d, 1)
  73.                 } else {
  74.                     c[d].move();
  75.                     c[d].draw()
  76.                 }
  77.             },
  78.             40);
  79.             k(window, "scroll",
  80.             function() {
  81.                 for (var e = c.length - 1; e >= 0; e--) c[e].draw()
  82.             })
  83.         } else g(function() {
  84.             createSnow(a, b)
  85.         })
  86.     };
  87.     window.removeSnow = function() {
  88.         f = false
  89.     };
  90.     i.prototype = {
  91.         createEl: function(a, b) {
  92.             this.el = document.createElement("img");
  93.             this.el.setAttribute
  94. ("src", b + "http://mimg.127.net/hxm/quan/hd/111207_sdj/style/img/snow.gif");
  95.             this.el.style.position = "absolute";
  96.             this.el.style.display = "block";
  97.             this.el.style.zIndex = "99999";
  98.             this.parent.appendChild(this.el)
  99.         },
  100.         move: function() {
  101.             if (this.angle < this.minAngle || this.angle > this.maxAngle)
  102. this.angleDelta = -this.angleDelta;
  103.             this.angle += this.angleDelta;
  104.             this.left += this.speed * Math.cos(this.angle * Math.PI);
  105.             this.top -= this.speed * Math.sin(this.angle * Math.PI);
  106.             if (this.left < 0) this.left = this.maxLeft;
  107.             else if (this.left > this.maxLeft) this.left = 0
  108.         },
  109.         draw: function() {
  110.             this.el.style.top = Math.round(this.top) + "px";
  111.             this.el.style.left = Math.round(this.left) + "px"
  112.         },
  113.         remove: function() {
  114.             this.parent.removeChild(this.el);
  115.             this.parent = this.el = null
  116.         }
  117.     }
  118. })();
  119. createSnow("", 40);
  120. </script>
复制代码

发表于 2021-11-17 19:03 | 显示全部楼层
感谢楼主,好人一生平安
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表 发新帖

快速回复 返回顶部 返回列表