您的位置:首页 > Web前端 > JavaScript

使用javascript实现的雪花飞舞的效果

2013-12-31 14:34 701 查看
原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除,于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除,另外将雪花改为fixed定位.

效果演示:点击这里

<p>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script charset="utf-8" type="text/javascript">// <![CDATA[
(function($){

$.fn.snow = function(options){

var $flake = $('<div id="snowbox" />').css({ 'position': 'fixed', 'top': '-50px', 'border-radius': '8px','background':'#fff'}),
documentHeight     = $(document).height(),
documentWidth    = $(document).width(),
defaults        = {
minSize        : 1,        //雪花的最小尺寸
maxSize        : 10,        //雪花的最大尺寸
newOn        : 100,        //雪花出现的频率
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() * 500,
durationFall        = documentHeight * 10 + Math.random() * 5000;
$flake.clone().appendTo('body').css({
left: startPositionLeft,
opacity: startOpacity,
height: sizeFlake,
width:sizeFlake,
color: options.flakeColor
}).animate({
top: endPositionTop,
left: endPositionLeft,
opacity: 0.2
},durationFall,'linear',function(){
$(this).remove()
}
);

}, options.newOn);

};

})(jQuery);
// ]]></script>
</p>
<!--下面是调用方法和参数说明-->
<p>
<script type="text/javascript">// <![CDATA[
$(function(){
$.fn.snow({
minSize: 1,        //雪花的最小尺寸
maxSize:8,     //雪花的最大尺寸
newOn: 100        //雪花出现的频率 这个数值越小雪花越多
});
});
// ]]></script>
</p>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: