圣诞节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 相关文章推荐
javascript中删除指定数组中指定的元素的代码
Feb 12 Javascript
js Function类型
Dec 04 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
Sep 06 Javascript
jquery实现(textarea)placeholder自动换行
Dec 22 Javascript
jquery 实现复选框的全选操作实例代码
Jan 24 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
JS实现根据指定值删除数组中的元素操作示例
Aug 02 Javascript
openlayers实现地图弹窗
Sep 25 Javascript
vue特效之翻牌动画
Apr 20 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
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python实现图像识别功能
2018/01/29 Python
python and or用法详解
2019/06/26 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python-opencv 双线性插值实例
2020/01/17 Python
python3 配置logging日志类的操作
2020/04/08 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
python3 kubernetes api的使用示例
2021/01/12 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
小学生班会演讲稿
2014/01/09 职场文书
六十岁生日答谢词
2014/01/10 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
清洁工工作总结
2015/08/11 职场文书
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers