圣诞节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 相关文章推荐
取得父标签
Nov 14 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
取消选中单选框radio的三种方式示例介绍
Dec 23 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 Javascript
非常实用的vue导航钩子
Mar 20 Javascript
React Native验证码倒计时工具类分享
Oct 24 Javascript
简化vuex的状态管理方案的方法
Jun 02 Javascript
浅谈React之状态(State)
Sep 19 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
May 11 Javascript
element中el-container容器与div布局区分详解
May 13 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加密解密函数代码
2013/06/19 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
Win8下python3.5.1安装教程
2020/07/29 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
python3中确保枚举值代码分析
2020/12/02 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
升职自荐信
2013/11/28 职场文书
篮球赛口号
2014/06/18 职场文书
领导班子四风表现材料
2014/08/23 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
繁星春水读书笔记
2015/06/30 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis