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


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高级技巧
Dec 20 Javascript
jQuery的bind()方法使用详解
Jul 15 Javascript
javascript事件绑定学习要点
Mar 09 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 Javascript
js实现内置计时器
Dec 16 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 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
php中curl和file_get_content的区别
2014/05/10 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
python实现百万答题自动百度搜索答案
2018/01/16 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
趣味活动策划方案
2014/02/08 职场文书
2014年个人年终总结
2015/03/09 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫