纯代码为WordPress添加雪花飘落效果

2015-12-24 16:10 来自本站原创 7,063 7 12
[摘要]

今天是2015年圣诞节的平安夜,到处弥漫着圣诞节日的气息,心血来潮想给自己的博客增加一个雪花飘飘的特效,也来凑凑圣诞节的热闹,一番折腾后,伴着圣诞音乐雪花缓缓飘落,还真的挺像那么回事。

为网页增加雪花飘落特效还是比较简单的,只需要配置好JS代码就可以了,现将方法分享一下。

纯代码为WordPress添加雪花飘落效果

下载相关代码、素材文件 点我下载 提取密码:fmqg

1、上传js代码

将snow.js文件上传到你的主题js目录,代码如下,可自行新建。

  1. /* 网页雪花飘落特效
  2.    雅兮网 www.yaxi.net 整理
  3.    QQ;442808828
  4. */
  5. (function() {
  6. function k(a, b, c) {
  7. if (a.addEventListener) a.addEventListener(b, c, false);
  8. else a.attachEvent && a.attachEvent("on" + b, c)
  9. }
  10. function g(a) {
  11. if (typeof window.onload != "function") window.onload = a;
  12. else {
  13. var b = window.onload;
  14. window.onload = function() {
  15. b();
  16. a()
  17. }}}
  18. function h() {
  19. var a = {};
  20. for (type in {
  21. Top: "",
  22. Left: ""
  23. }) {
  24. var b = type == "Top" ? "Y""X";
  25. if (typeof window["page" + b + "Offset"] != "undefined")
  26. a[type.toLowerCase()] = window["page" + b + "Offset"];
  27. else {
  28. b = document.documentElement.clientHeight ? document.documentElement: document.body;
  29. a[type.toLowerCase()] = b["scroll" + type]
  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() * 10 + 15; /* 两个数字控制雪花的大小,目前代码控制雪花尺寸为10~25px */
  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. 40);
  78. k(window, "scroll",
  79. function() {
  80. for (var e = c.length - 1; e >= 0; e--) c[e].draw()
  81. })
  82. else g(function() {
  83. createSnow(a, b)
  84. })
  85. };
  86. window.removeSnow = function() {
  87. f = false
  88. };
  89. i.prototype = {
  90. createEl: function(a, b) {
  91. this.el = document.createElement("img");
  92. this.el.setAttribute
  93. ("src", b+"xxx.com/snow/snow"+Math.floor(Math.random()*4)+".gif");/* 标红部分修改为四个雪花文件所在的目录地址 */
  94. this.el.style.position = "absolute";
  95. this.el.style.display = "block";
  96. this.el.style.zIndex = "99999";
  97. this.parent.appendChild(this.el)
  98. },
  99. move: function() {
  100. if (this.angle < this.minAngle || this.angle > this.maxAngle)
  101. this.angleDelta = -this.angleDelta;
  102. this.angle += this.angleDelta;
  103. this.left += this.speed * Math.cos(this.angle * Math.PI);
  104. this.top -= this.speed * Math.sin(this.angle * Math.PI);
  105. if (this.left < 0) this.left = this.maxLeft;
  106. else if (this.left > this.maxLeft) this.left = 0
  107. },
  108. draw: function() {
  109. this.el.style.top = Math.round(this.top) + "px";
  110. this.el.style.left = Math.round(this.left) + "px"
  111. },
  112. remove: function() {
  113. this.parent.removeChild(this.el);
  114. this.parent = this.el = null
  115. }}
  116. })();
  117. createSnow("", 40);

2、上传雪花素材文件

将下载的snow文件夹中雪花素材文件到你的网站图片文件夹,不要修改图片名字

3、配置js代码

将js代码配置到博客header.php文件中</head>之前(也可以放到footer.php,看你喜欢)如下:

  1. <script type="text/javascript" src="xxx.com/snow/snow.js"></script><!--圣诞飘雪花-->

是不是已经出现了雪花飘飘的效果呢?

4、注意事项

1、js文件中可以自行调整雪花大小,也可自行更换雪花样式

2、注意填写正确雪花文件地址,笔者是将snow文件夹直接放在了根目录所以雪花素材和js文件地址为“http://xxx.com/snow/...”请大家根据自己的实际情况进行修改

本文最后更新于2017年9月1日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果认为本文对您有所帮助请赞助本站

支付宝扫一扫赞助微信扫一扫赞助

  • 支付宝扫一扫赞助
  • 微信扫一扫赞助
  • 声明:凡注明“本站原创”的所有文字图片等资料,版权均属 雅兮网 所有,欢迎转载,但务请注明出处;
    已是本栏目最后文章
    目前评论:7   其中:访客  5   博主  1
    加载中...
    1. lol 1
      2年前 (2017-02-10) 5楼

      很实用,把图片换成别的,这样在别的季节也能用了~

    2. 3年前 (2015-12-26) 4楼

      在博客112导航过来的,在那边看到了这篇文章,感觉也因该过来打个招呼比较合适, :mrgreen:

    3. 3年前 (2015-12-26) 板凳

      不错!有时间也来弄弄,很符合季节!!!

    4. 3年前 (2015-12-25) 椅子

      纯代码为WordPress添加雪花飘落效果,这种效果是我第一次看见,非常的漂亮额,圣诞节很适合用额

    5. 3年前 (2015-12-24) 沙发

      不错,我也使用

    发表评论

    疑问 调皮 难过 抠鼻 吓 微笑 可爱 坏笑 惊讶 发呆 疑问 大兵 偷笑 咒骂 发怒 白眼 鼓掌 得意 擦汗 亲亲 大哭 呲牙 晕 强

    7 12 7,063
    Top