圣诞节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实现的网站首页随机公告随机公告
Mar 14 Javascript
JQuery 前台切换网站的样式实现
Jun 22 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
Bootstrap轮播插件简单使用方法介绍
Jun 21 Javascript
简单实现js倒计时功能
Feb 13 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 Javascript
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
详解js获取video任意时间的画面截图
Apr 17 Javascript
JavaScript实现轮播图效果代码实例
Sep 28 Javascript
JS实现可视化音频效果的实例代码
Jan 16 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
文件上传的实现
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
编程语言JavaScript简介
2014/10/16 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
详解ES6中的let命令
2020/04/05 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
Python 中 Meta Classes详解
2016/02/13 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python3.8下载及安装步骤详解
2020/01/15 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
python实现mean-shift聚类算法
2020/06/10 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
个人求职信范文分享
2014/01/31 职场文书
项目建议书范文
2014/05/12 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
关于教师节的广播稿
2015/08/19 职场文书
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫