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


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解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
javascript 控制input只允许输入的各种指定内容
Jun 19 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
Bootstrap table表格简单操作
Feb 07 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
Sep 15 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 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
服务器web工具 php环境下
2010/12/29 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python中暂存上传图片的方法
2015/02/18 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
python使用epoll实现服务端的方法
2018/10/16 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
科级干部考察材料
2014/02/15 职场文书
司法建议书范文
2014/05/13 职场文书
老乡聚会通知
2015/04/23 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript