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


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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
js url传值中文乱码之解决之道
Nov 20 Javascript
JavaScript 错误处理与调试经验总结
Aug 10 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
jquery操作 iframe的方法
Dec 03 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
Feb 25 Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 Javascript
Vue from-validate 表单验证的示例代码
Sep 26 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
js实现鼠标拖拽缩放div实例代码
Mar 25 Javascript
详解JS浏览器事件循环机制
Mar 27 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 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之第十天
2006/10/09 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
js变量作用域及可访问性的探讨
2006/11/23 Javascript
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
pycharm修改file type方式
2019/11/19 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
Tostadora意大利:定制T恤
2019/04/08 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
给女儿的表扬信
2014/01/18 职场文书
初一科学教学反思
2014/01/27 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
年底个人总结范文
2015/03/10 职场文书
2016年教师节慰问信
2015/12/01 职场文书