圣诞节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 相关文章推荐
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
Feb 03 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
详解Axios统一错误处理与后置
Sep 26 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
详解JavaScript的变量
Apr 04 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
layui多iframe页面控制定时器运行的方法
Sep 05 Javascript
在vue中使用jsx语法的使用方法
Sep 30 Javascript
JS轮播图的实现方法
Aug 24 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读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
原生js检测页面加载完毕的实例
2018/09/11 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python3数字求和的实例
2019/02/19 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
班组长安全职责
2014/01/05 职场文书
水果超市创业计划书
2014/01/27 职场文书
超市采购员岗位职责
2014/02/01 职场文书
创新社会管理心得体会
2014/09/12 职场文书
2014年教育工作总结
2014/11/26 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB