最近由于项目需要,使用JS控制最小化,和弹出位置。情景是:在某个位置打开一个dialog的同时,关闭制定的弹窗。
为了使用方便,我简单封装了一下,有需要的可以直接用,希望在自己学习的同时,可以帮到大家。
在dwz.dialog.js 添加以下代码:
/***
* 跟据弹窗的唯一id,最小化窗口
* @param dialog dialogId
* 2017.09.06_JYH
*/
minimizeDialog:function(dialog){
if(typeof dialog == 'string') dialog = $("body").data(dialog);
$(dialog).hide();
$("div.shadow").hide();
var task = $.taskBar.getTask($(dialog).data("id"));
//alert(task.position().left);
$(".resizable").css({
top: $(dialog).css("top"),
left: $(dialog).css("left"),
height:$(dialog).css("height"),
width:$(dialog).css("width")
}).show().animate({top:$(window).height()-60,left:task.position().left,width:task.outerWidth(),height:task.outerHeight()},250,function(){
$(this).hide();
$.taskBar.inactive($(dialog).data("id"));
});
},
/**
* 改变弹窗弹出位置
* @param removal_left 距离左边的位置。如:100
* @param removal_top 距离上边的位置。如:100
* 2017.09.06_JYH
*/
changeDialogPopPosition:function(removal_left,removal_top){
$.pdialog.resizeDialog({style: {left: removal_left, top: removal_top}}, $.pdialog.getCurrent(), "w");
$.pdialog.resizeDialog({style: {left: removal_left, top: removal_top}}, $.pdialog.getCurrent(), "n");
},
/**
* dialog中刷新dialog的方法
* @param dialogId
*/
reloadDialog:function(dialogId){
var dialog = $("body").data(dialogId);
if(dialog){
$.pdialog.reload(dialog.data("url"),{dialogId:dialogId});
}
},
用法实例:
//弹出位置的调整
$.pdialog.open("url", "dialog","轨迹", {
width : 400,
height : 200,
data : {
a:A
}
});
//在打开弹窗的后面加上就好
$.pdialog.changeDialogPopPosition(930,170);
//根据dialog的Id最小化弹窗
function mindialog(){
var dialogId="openShipInfo";
$.pdialog.minimizeDialog(dialogId);
}