飘雪花
使你的博客飘雪花(优化版)
前些天,在园子里看到了使你的博客飘雪花的文章,就赶紧弄到自己的博客里来看看效果,别说,还真是漂亮啊。可是看了一会,就发现页面变得特别卡。
看了下代码后发现,原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除。
但是,实际上,超出屏幕的页面我们又看不见,就算有雪花在飘又有什么意义呢。
于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除,另外将雪花改为fixed定位。
将页面刷新下,果然好多了。现把修改代码贴出来与大家分享。
PS.原作者链接我没找到,版权归原作者所有:)
( function ($){
$.fn.snow = function (options){
var $flake=$('<div />' )
.css({
'position':'fixed', // 'absolute',
'top':'-50px' ,
'z-index':'1000'
})
.html( '❄' );
var documentHeight=document.documentElement.clientHeight; // $(document).height();
var documentWidth= $(document).width();
var defaults={minSize:10,maxSize:20,newOn:500,flakeColor:"#FFFFFF" };
var options= $.extend({},defaults,options);
var interval=setInterval( function (){
var startPositionLeft=Math.random()*documentWidth-100 ;
var startOpacity=0.5+ Math.random();
var sizeFlake=options.minSize+Math.random()* options.maxSize;
var endPositionTop=documentHeight-40 ;
var endPositionLeft=startPositionLeft-100+Math.random()*200 ;
var 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); // interval End
}; // $.fn.snow End
})(jQuery);
$.fn.snow({ minSize: 10, maxSize: 60, newOn: 800, flakeColor: '#ccc'});
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类: Web前端
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did47321