圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现


Posted in Javascript onDecember 27, 2012

一年一度的圣诞节又到了,首先祝大家好运一串串,健康一年年,平安到永远!在这个特殊的日子里,处处洋溢着节日的气氛,空中飘落的雪花更显得浪漫!今天就教大家如何在博客中添加纷纷扬扬的下雪效果。今天,你那里下雪了吗?
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
首先在页面引入 jQuery 库和 jQuery.snow.js(或者使用压缩版本 jQuery.snow.min.js):

<script src="jquery.js"></script> 
<script src="jquery.snow.js"></script>

博客园的朋友可以不用引入 jQuery,因为博客园自身已经引入了。不是博客园的朋友也可以引用 Goolgle CDN 提供的 jQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script> 
<script src="jquery.snow.js"></script>

然后在页面文档的任何地方调用下雪插件就可以了:
<script> 
$(document).ready( function(){ 
$.fn.snow(); 
}); 
</script>

你也可以根据自己的喜好设置插件提供的参数来调整下雪的效果:
minSize /* 雪花的最小尺寸,默认值 10 */ 
maxSize /* 雪花的最小尺寸,默认值 20 */ 
newOn /* 每毫秒雪花出现的频率,默认是 500 */ 
flakeColor /* 雪花的颜色,默认值是白色 #FFFFFF */

例如可以传递下面这样形式的参数:
$.fn.snow({ 
minSize: 5, 
maxSize: 50, 
newOn: 1000, 
flakeColor: '#0099FF' 
});

newOn 参数值越小,效果越好,但是设置过小的话可能会有性能问题,比较耗资源。

最后向大家简单介绍一下这个下雪效果实现的要点
使用字符 ❄ 作为雪花,Unicode 编码是:❄,因此雪花的大小和颜色控制其实就是设置 font-size 和 color 属性。
使用 setInterval 周期性生成雪花,频率使用 newOn 控制。

下面是下雪插件的完整代码

(function($){ 
$.fn.snow = function(options){ 
var $flake = $('<div id="flake" />').css({'position': 'absolute', 'top': '-50px'}).html('❄'), 
documentHeight = $(document).height(), 
documentWidth = $(document).width(), 
defaults = { 
minSize : 10, 
maxSize : 20, 
newOn : 500, 
flakeColor : "#FFFFFF" 
}, 
options = $.extend({}, defaults, options); 
var interval = setInterval( function(){ 
var startPositionLeft = Math.random() * documentWidth - 100, 
startOpacity = 0.5 + Math.random(), 
sizeFlake = options.minSize + Math.random() * options.maxSize, 
endPositionTop = documentHeight - 40, 
endPositionLeft = startPositionLeft - 100 + Math.random() * 200, 
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); 
}; 
})(jQuery);

园子里的朋友只要把下面代码添加到(管理-》设置-》页脚HTML代码)中就可以了,非简单!

温馨提示:因为会被转义,这里给雪花编码加个空格,使用的时候记得把html('& #10052;') 的& #间空格去掉啊。

<script> 
(function($){$.fn.snow=function(options){var $flake=$('<div id="flake" />').css({'position':'absolute','top':'-50px'}).html('& #10052;'),documentHeight=$(document).height(),documentWidth=$(document).width(),defaults={minSize:10,maxSize:20,newOn:500,flakeColor:"#FFFFFF"},options=$.extend({},defaults,options);var interval=setInterval(function(){var startPositionLeft=Math.random()*documentWidth-100,startOpacity=0.5+Math.random(),sizeFlake=options.minSize+Math.random()*options.maxSize,endPositionTop=documentHeight-40,endPositionLeft=startPositionLeft-100+Math.random()*200,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);};})(jQuery); 
$.fn.snow({ minSize: 5, maxSize: 50, newOn: 1000, flakeColor: '#FFF' }); 
</script>

圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Javascript 相关文章推荐
完美解决AJAX跨域问题
Nov 01 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
JS获取时间的方法
Jan 21 Javascript
javascript实现动态加载CSS
Jan 26 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 #Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 #Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 #Javascript
ie支持function.bind()方法实现代码
Dec 27 #Javascript
前后台交互过程中json格式如何解析以及如何生成
Dec 26 #Javascript
多个js与css文件的合并方法详细说明
Dec 26 #Javascript
JS打开图片另存为对话框实现代码
Dec 26 #Javascript
You might like
PHP提取中文首字母
2008/04/09 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
详解Python中的文本处理
2015/04/11 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
python交换两个变量的值方法
2019/01/12 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
学生学习总结的自我评价
2013/10/22 职场文书
大学生自荐书范文
2013/12/10 职场文书
大学生作弊检讨书
2014/02/19 职场文书
工商干部先进事迹
2014/05/14 职场文书
太空授课观后感
2015/06/17 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书