我正在使用此处找到的 jQuery UI 对话框功能:
http://jqueryui.com/dialog(此处为 API)
我想以层叠的方式推出一堆这样的盒子。不幸的是,我认为Position选项不会为我做到这一点,因为它似乎仅限于屏幕的特定区域(我可能错了)。
看看这个小提琴我目前拥有的代码:http: //jsfiddle.net/bUFnE/1/
这是我的 JS:
//Code used to launch little score cards of the the leads
var boxID = 0;
$('a.manageLead').click(function() {
boxID = boxID + 1;
var url = this.href;
// show a spinner or something via css
var dialog = $('<div style="display:none" class="loading"></div>').appendTo('body');
// open the dialog
dialog.dialog({
// add a close listener to prevent adding multiple divs to the document
close: function(event, ui) {
// remove div with all data and events
dialog.remove();
},
modal: false,
resizable: false,
dialogClass: "dialog-box-"+boxID,
position: { my: "center top", at: "center top" },
title: "Lead Details"
});
// load remote content
dialog.load(
url,
{},
function (responseText, textStatus, XMLHttpRequest) {
// remove the loading class
dialog.removeClass('loading');
}
);
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
////// THIS IS WHERE I'M TRYING TO MAKE THE MAGIC HAPPEN ///////
var modalTop = Number($('.dialog-box-'+boxID).css("top").replace("px", "")) + 20;
var modalLeft = Number($('.dialog-box-'+boxID).css("left").replace("px", "")) + 20;
$('.dialog-box-'+boxID).css("top", modalTop+"px !important");
$('.dialog-box-'+boxID).css("left", modalLeft+"px !important");
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//prevent the browser to follow the link
return false;
});
如果您多次单击该链接并移动新打开的对话框,您会看到它们只是堆叠在一起。我希望他们慢慢地爬下页面顶部+20px,然后向左+20px,然后一旦它达到200px,又从头开始。