自制轻量级仿jQuery.boxy对话框插件代码

2020-05-19 07:33:15易采站长站整理

cvBoxElement += ‘<div id=”cvBoxBody” class=”cvBoxBody”></div>’;
cvBoxElement += ‘</div>’;
if ($(“#cvBoxBorder”).size()) {
$(“#cvBoxBorder”).show();
if (param.bgShow) {
$(“#cvBoxShade”).show();
}
else {
$(“#cvBoxShade”).hide();
}
}
else {
$(“body”).append(cvBoxElement);
}
//一些元素对象,浏览器宽高,滚动高度,页面高度
var cbBg = $(“#cvBoxShade”);
var cbBorder = $(“#cvBoxBorder”);
var cbTitleBar = $(“#cvBoxTitleBar”);
var cbBody = $(“#cvBoxBody”);
var w, h, st, ph;
var cb = {
//装载的内容
content: function() {
var text;
if (param.confirmText != “”) {
text = $(‘<div class=”cvBoxBodyBtn”>’ + param.confirmText + ‘<p><input type=”button” id=”cvBoxBtnSubmit” class=”cvBoxBtnSubmit” value=”确认” />  <input type=”button” id=”cvBoxBtnCancel” class=”cvBoxBtnCancel” value=”取消” /></p></div>’);
}
else if (param.alertText != “”) {
text = $(‘<div class=”cvBoxBodyBtn”>’ + param.alertText + ‘<p><input type=”button” id=”cvBoxBtnSubmit” class=”cvBoxBtnSubmit” value=”确认” /></p></div>’);
}
else {
self.show();
text = self;
}
return text;
},
hw: function(obj) {
//获取任意元素的高宽
var hwSize = {};
$(‘<div id=”cbBox” style=”position:absolute;left:-999px;”></div>’).appendTo(“body”).append(obj.clone());
hwSize.w = $(“#cbBox”).width();
hwSize.h = $(“#cbBox”).height();
$(“#cbBox”).remove();
return hwSize;
},
//黑背景的宽高透明度等,弹框的位置
position: function() {
w = $(window).width(), h = $(window).height(), st = $(window).scrollTop(), ph = $(document).height();
cbBg.width(w).height(ph).css(“opacity”, param.bgOpacity);
//主体内容的位置
var x_size = cb.hw(cb.content());
var xh = x_size.h, xw = x_size.w;
var t = st + (h – xh) / 2, l = (w – xw) / 2;
cbBorder.css({
width: xw,
top: t,
left: l,
zIndex: 9999
});
},
//定位
posfix: function() {
if (window.XMLHttpRequest) {
cbBorder.css(“position”, “fixed”);
} else {
$(window).scroll(function() {
cb.position();
});
}
},
//居中
center: function() {
$(window).resize(function() {
cb.position();
});
},
bgclick: function() {
cbBg.click(function() {
cb.hide();
});
},
bghide: function() {