(function(){
//作用域定义
var xproject = this.xproject || function(){};
this.xproject = xproject;
/*
* @description全屏背景图类 xproject.fullBackBround({ bgImg : 'images/2014022709240529.jpg'});
* @param args
* {
* $layer : jQuery 容器
* bgImg : String, //背景图片地址url,默认null
* zIndex : int //z-index值,默认-1
* }
*/
xproject.fullBackBround = function(args){
var $layer = args.$layer || $('body'),
$bg = $('<div class="full-bg" style="overflow:hidden;position:fixed;left:0;top:0;width:100%;height:100%;z-index:-1;"></div>').appendTo($layer);
full();
function full(){
if(args && typeof args == 'object'){
if(args.zIndex){
$bg.css('z-index', args.zIndex);
}
if(args.bgImg){
var img = new Image();
img.src = args.bgImg;
if(img.complete){
complete.call(img);
}else img.onload = function(){
complete.call(this, this.height / this.width);
};
}
}
}
function complete(per){
var width = parseInt($bg.width()),
height = parseInt($bg.height()),
norPer = height / width;
per = per || this.height / this.width;
if(per > norPer){
height = Math.round(width * per);
}else if(norPer > per){
width = Math.round(height / per);
}
this.width = width;
this.height = height;
$bg.empty().append($(this));
}
$(window).on({
resize : function(){
full();
}
});
return {
//移除
remove : function(){
$bg.remove();
},
//获取页面元素
getLayer : function(){
return $bg
},
//显示
show : function(){
$bg.fadeIn('fast');
},
//隐藏
hide : function(){
$bg.fadeOut('fast');
},
//根据页面重置大小
resize : function(){
full();
},
//改变地址
changeUrl : function(url){
args.bgImg = url;
full();
}
};
};
})();
how2use
if(!this.imgBg) this.imgBg = new xproject.fullBackBround({$layer : this.$layer, bgImg : imgUrl});
this.imgBg.changeUrl(imgUrl);