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


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的仿百度搜索框效果代码
Apr 11 Javascript
浅谈js的ajax的异步和同步请求的问题
Oct 07 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
Oct 13 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
vue调试工具vue-devtools安装及使用方法
Nov 07 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 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危险函数(disable_functions)
2012/02/23 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python清除函数占用的内存方法
2018/06/25 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Python学习之time模块的基本使用
2021/01/17 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
继承权公证书
2014/04/09 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
个人维稳承诺书
2015/05/04 职场文书
二十年同学聚会感言
2015/07/30 职场文书
教师节祝酒词
2015/08/11 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
MySQL主从切换的超详细步骤
2022/06/28 MySQL