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


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 面向对象编程(1) 基础
May 18 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
php与js的区别是什么
Aug 05 Javascript
jquery的ajax简单结构示例代码
Feb 17 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
C++中的string类的用法小结
Aug 07 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
微信小程序实现复选框效果
Dec 28 Javascript
JavaScript学习笔记之图片库案例分析
Jan 08 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 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字符串的连接的简单实例
2013/12/30 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python下线程之间的共享和释放示例
2015/05/04 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
python中selenium库的基本使用详解
2020/07/31 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
捷科时代的软件测试笔试题
2015/11/09 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
普通大学毕业生自荐信
2013/11/04 职场文书
酒店前台接待岗位职责
2013/12/03 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
英文演讲稿开场白
2014/08/25 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers