圣诞节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 相关文章推荐
JS按位非(~)运算符与~~运算符的理解分析
Jul 31 Javascript
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
jQuery实现图片渐入渐出切换展示效果
Aug 15 Javascript
javascript常用的方法整理
Aug 20 Javascript
浅析js绑定事件的常用方法
May 15 Javascript
JavaScript中的工厂函数(推荐)
Mar 08 Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
详解用async/await来处理异步
Aug 28 Javascript
Vuex实现数据共享的方法
Dec 20 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 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的图形函数中显示汉字
2006/10/09 PHP
PHP的PSR规范中文版
2013/09/28 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python如何实现的二分查找算法
2020/05/27 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
毕业求职自荐信格式是什么
2013/11/19 职场文书
党支部书记先进事迹
2014/01/17 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
影视广告专业求职信
2014/09/02 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
python实现三次密码验证的示例
2021/04/29 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL