让你的博客飘雪花超出屏幕依然看得见


Posted in Javascript onJanuary 04, 2013

前些天,在园子里看到了使你的博客飘雪花的文章,就赶紧弄到自己的博客里来看看效果,别说,还真是漂亮啊。可是看了一会,就发现页面变得特别卡。

看了下代码后发现,原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除。

但是,实际上,超出屏幕的页面我们又看不见,就算有雪花在飘又有什么意义呢。
于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除,另外将雪花改为fixed定位。

将页面刷新下,果然好多了。现把修改代码贴出来与大家分享。
PS.原作者链接我没找到,版权归原作者所有:)

(function($){ 
$.fn.snow=function(options){ 
var $flake=$('<div />') 
.css({ 
'position':'fixed',//'absolute', 
'top':'-50px', 
'z-index':'1000' 
}) 
.html('❄'); 
var documentHeight=document.documentElement.clientHeight;//$(document).height(); 
var documentWidth=$(document).width(); 
var defaults={minSize:10,maxSize:20,newOn:500,flakeColor:"#FFFFFF"}; 
var options=$.extend({},defaults,options); 
var interval=setInterval(function(){ 
var startPositionLeft=Math.random()*documentWidth-100; 
var startOpacity=0.5+Math.random(); 
var sizeFlake=options.minSize+Math.random()*options.maxSize; 
var endPositionTop=documentHeight-40; 
var endPositionLeft=startPositionLeft-100+Math.random()*200; 
var durationFall=documentHeight*10+Math.random()*5000; 
$flake.clone() 
.appendTo('body') 
.css({ 
left:startPositionLeft, 
opacity:startOpacity, 
'font-size':sizeFlake, 
color:options.flakeColor 
}) 
.animate({ 
top:endPositionTop, 
left:endPositionLeft, 
opacity:0.2 
}, 
durationFall, 
'linear', 
function(){ 
$(this).remove(); 
}); 
},options.newOn);//interval End 
};//$.fn.snow End 
})(jQuery); 
$.fn.snow({ minSize: 10, maxSize: 60, newOn: 800, flakeColor: '#ccc'});
Javascript 相关文章推荐
用js+xml自动生成表格的东西
Dec 21 Javascript
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 Javascript
HTML,CSS,JavaScript速查表推荐
Dec 02 Javascript
javascript中this的四种用法
May 11 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
Nov 15 Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
Vue 嵌套路由使用总结(推荐)
Jan 13 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
Jan 04 #Javascript
jquery入门—选择器实现隔行变色实例代码
Jan 04 #Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
Jan 04 #Javascript
formvalidator验证插件中有关ajax验证问题
Jan 04 #Javascript
使用jquery mobile做幻灯播放效果实现步骤
Jan 04 #Javascript
jquery 插件开发 extjs中的extend用法小结
Jan 04 #Javascript
使用jquery读取html5 localstorage的值的方法
Jan 04 #Javascript
You might like
php中的登陆login
2007/01/18 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
Python中使用Inotify监控文件实例
2015/02/14 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python实现的密码强度检测器示例
2017/08/23 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
英语系本科生个人求职信
2013/09/21 职场文书
班班通项目实施方案
2014/02/25 职场文书
施工安全责任书
2014/04/14 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫