圣诞节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 相关文章推荐
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
Oct 28 Javascript
超全面的javascript中变量命名规则
Feb 09 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
Feb 13 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
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 has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
户外亲子活动策划方案
2014/02/07 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
篮球赛口号
2014/06/18 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
三孔导游词
2015/02/05 职场文书
表扬信范文
2015/05/04 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python