圣诞节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获取单选框或复选框值及操作
Dec 18 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
Dec 10 Javascript
jquery取子节点及当前节点属性值的方法
Sep 09 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
Nov 23 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
详解javascript中的事件处理
Nov 06 Javascript
JS判断是否手机或pad访问实现方法
Dec 09 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
vue中render函数的使用详解
Oct 12 Javascript
vue服务端渲染操作简单入门实例分析
Aug 28 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
vue 把二维或多维数组转一维数组
Apr 24 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上传文件并显示上传进度的方法
2015/03/24 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
企业元宵节主持词
2014/03/25 职场文书
电话营销开场白
2015/05/29 职场文书
安全生产会议制度
2015/08/06 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
导游词之上海豫园
2019/10/24 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
PyTorch中permute的使用方法
2022/04/26 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang