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


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 相关文章推荐
JSON 教程 json入门学习笔记
Sep 22 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
Bootstrap每天必学之标签页(Tab)插件
Aug 09 Javascript
js变量提升深入理解
Sep 16 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
Element Input组件分析小结
Oct 11 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 Javascript
JS判断浏览器类型与操作系统的方法分析
Apr 30 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/12/05 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
如何使用angularJs
2017/05/08 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
自荐书4要点
2014/01/25 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
五年级下册复习计划
2015/01/19 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python