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


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 相关文章推荐
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
Dec 04 Javascript
使用bootstrap3开发响应式网站
May 12 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
jQuery事件对象总结
Oct 17 Javascript
vue实现全选、反选功能
Nov 17 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
Jan 24 Javascript
Vue批量图片显示时遇到的路径被解析问题
Mar 28 Javascript
layui中select,radio设置不生效的解决方法
Sep 05 Javascript
js实现车辆管理系统
Aug 26 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 操作文件的一些FAQ总结
2009/02/12 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
个人自我鉴定写法
2013/11/30 职场文书
超市5.1促销活动
2014/01/15 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
导游欢迎词范文
2015/01/23 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js