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


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 相关文章推荐
JavaScript 实现模态对话框 源代码大全
May 02 Javascript
Extjs 几个方法的讨论
Jan 28 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
js性能优化 如何更快速加载你的JavaScript页面
Mar 17 Javascript
HTML,CSS,JavaScript速查表推荐
Dec 02 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
Aug 31 Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
微信小程序通过一个json实现分享朋友圈图片
Sep 03 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 异常处理实现代码
2009/03/10 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
php 错误处理经验分享
2011/10/11 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
初识laravel5
2015/03/02 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
python实现kMeans算法
2017/12/21 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
社区中秋节活动方案
2014/01/29 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
父母教会我观后感
2015/06/17 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书