今天是2015年圣诞节的平安夜,到处弥漫着圣诞节日的气息,心血来潮想给自己的博客增加一个雪花飘飘的特效,也来凑凑圣诞节的热闹,一番折腾后,伴着圣诞音乐雪花缓缓飘落,还真的挺像那么回事。
为网页增加雪花飘落特效还是比较简单的,只需要配置好JS代码就可以了,现将方法分享一下。
下载相关代码、素材文件 点我下载 提取密码:fmqg
1、上传js代码
将snow.js文件上传到你的主题js目录,代码如下,可自行新建。
- /* 网页雪花飘落特效
- 雅兮网 www.yaxi.net 整理
- QQ;442808828
- */
- (function() {
- function k(a, b, c) {
- if (a.addEventListener) a.addEventListener(b, c, false);
- else a.attachEvent && a.attachEvent("on" + b, c)
- }
- function g(a) {
- if (typeof window.onload != "function") window.onload = a;
- else {
- var b = window.onload;
- window.onload = function() {
- b();
- a()
- }}}
- function h() {
- var a = {};
- for (type in {
- Top: "",
- Left: ""
- }) {
- var b = type == "Top" ? "Y": "X";
- if (typeof window["page" + b + "Offset"] != "undefined")
- a[type.toLowerCase()] = window["page" + b + "Offset"];
- else {
- b = document.documentElement.clientHeight ? document.documentElement: document.body;
- a[type.toLowerCase()] = b["scroll" + type]
- }}
- return a
- }
- function l() {
- var a = document.body,
- b;
- if (window.innerHeight) b = window.innerHeight;
- else if (a.parentElement.clientHeight) b = a.parentElement.clientHeight;
- else if (a && a.clientHeight) b = a.clientHeight;
- return b
- }
- function i(a) {
- this.parent = document.body;
- this.createEl(this.parent, a);
- this.size = Math.random() * 10 + 15; /* 两个数字控制雪花的大小,目前代码控制雪花尺寸为10~25px */
- this.el.style.width = Math.round(this.size) + "px";
- this.el.style.height = Math.round(this.size) + "px";
- this.maxLeft = document.body.offsetWidth - this.size;
- this.maxTop = document.body.offsetHeight - this.size;
- this.left = Math.random() * this.maxLeft;
- this.top = h().top + 1;
- this.angle = 1.4 + 0.2 * Math.random();
- this.minAngle = 1.4;
- this.maxAngle = 1.6;
- this.angleDelta = 0.01 * Math.random();
- this.speed = 2 + Math.random()
- }
- var j = false;
- g(function() {
- j = true
- });
- var f = true;
- window.createSnow = function(a, b) {
- if (j) {
- var c = [],
- m = setInterval(function() {
- f && b > c.length && Math.random()
- < b * 0.0025 && c.push(new i(a)); ! f && !c.length && clearInterval(m);
- for (var e = h().top, n = l(), d = c.length - 1; d >= 0; d--)
- if (c[d]) if (c[d].top < e || c[d].top + c[d].size + 1 > e + n) {
- c[d].remove();
- c[d] = null;
- c.splice(d, 1)
- } else {
- c[d].move();
- c[d].draw()
- }},
- 40);
- k(window, "scroll",
- function() {
- for (var e = c.length - 1; e >= 0; e--) c[e].draw()
- })
- } else g(function() {
- createSnow(a, b)
- })
- };
- window.removeSnow = function() {
- f = false
- };
- i.prototype = {
- createEl: function(a, b) {
- this.el = document.createElement("img");
- this.el.setAttribute
- ("src", b+"xxx.com/snow/snow"+Math.floor(Math.random()*4)+".gif");/* 标红部分修改为四个雪花文件所在的目录地址 */
- this.el.style.position = "absolute";
- this.el.style.display = "block";
- this.el.style.zIndex = "99999";
- this.parent.appendChild(this.el)
- },
- move: function() {
- if (this.angle < this.minAngle || this.angle > this.maxAngle)
- this.angleDelta = -this.angleDelta;
- this.angle += this.angleDelta;
- this.left += this.speed * Math.cos(this.angle * Math.PI);
- this.top -= this.speed * Math.sin(this.angle * Math.PI);
- if (this.left < 0) this.left = this.maxLeft;
- else if (this.left > this.maxLeft) this.left = 0
- },
- draw: function() {
- this.el.style.top = Math.round(this.top) + "px";
- this.el.style.left = Math.round(this.left) + "px"
- },
- remove: function() {
- this.parent.removeChild(this.el);
- this.parent = this.el = null
- }}
- })();
- createSnow("", 40);
2、上传雪花素材文件
将下载的snow文件夹中雪花素材文件到你的网站图片文件夹,不要修改图片名字
3、配置js代码
将js代码配置到博客header.php文件中</head>之前(也可以放到footer.php,看你喜欢)如下:
- <script type="text/javascript" src="xxx.com/snow/snow.js"></script><!--圣诞飘雪花-->
是不是已经出现了雪花飘飘的效果呢?
4、注意事项
1、js文件中可以自行调整雪花大小,也可自行更换雪花样式
2、注意填写正确雪花文件地址,笔者是将snow文件夹直接放在了根目录所以雪花素材和js文件地址为“http://xxx.com/snow/...”请大家根据自己的实际情况进行修改
很实用,把图片换成别的,这样在别的季节也能用了~
在博客112导航过来的,在那边看到了这篇文章,感觉也因该过来打个招呼比较合适,
@且听风吟: 喜欢就好,欢迎常来
不错!有时间也来弄弄,很符合季节!!!
纯代码为WordPress添加雪花飘落效果,这种效果是我第一次看见,非常的漂亮额,圣诞节很适合用额
不错,我也使用