如何使jQuery对话框弹出窗口保持在浏览器的中心位置
如何使jQuery弹出窗口即使在我上下滚动或更改浏览器窗口大小时仍保持在屏幕中央 这个div应该保存对话框:如何使jQuery对话框弹出窗口保持在浏览器的中心位置,jquery,html,css,jquery-ui,Jquery,Html,Css,Jquery Ui,如何使jQuery弹出窗口即使在我上下滚动或更改浏览器窗口大小时仍保持在屏幕中央 这个div应该保存对话框: <div id="dialog"> <h3 id="deleteMessage"></h3> </div> 根据我选择的datatable元素的id,还有此代码将显示弹出消息 $("#deleteMessage").html('Are you sure you want to delete "' +"<b>"+ selec
<div id="dialog">
<h3 id="deleteMessage"></h3>
</div>
根据我选择的datatable元素的id,还有此代码将显示弹出消息
$("#deleteMessage").html('Are you sure you want to delete "' +"<b>"+ selectedItemName +"</b>"+ '" report?');
$(“#deleteMessage”).html('您确定要删除“+”+selectedItemName+“+””报表?');
试试这个css
#dialog{
position: fixed;
top:50%;
left:50%;
transform: translate(-50%, -50%);
}
尝试将其添加到jQuery中 位置:[“中心”,“中心”] 因此,您的jQuery代码看起来像:
$("#dialog").dialog({
title: "Confirm Delete",
autoOpen: false,
modal: true,
draggable: false,
resizable: false,
position: ['center', 'center'],
closeOnEscape: false,
minWidth: 440,
minHeight: 220,
open: function(event, ui) {
$(".ui-dialog-titlebar-close", ui.dialog | ui).hide();
对于这样简单的事情,我更倾向于使用简单的香草JS代码,但我想您可以尝试使用CSS:
#dialog{
position: fixed;
top: 50%;
left: 50%;
margin-left: (your width * 1/2);
margin-top: (your height * 1/2)
}
这类似于
翻译(50%,50%)
,但有更好的支持。我想唯一的缺点是你需要知道宽度和高度。如果你不想写css,想使用jquery,请使用下面的代码。只需使用您的id,而不是modal1
setTimeout(function () {
$("#modal1").css({
"top": ($(window).scrollTop()) + ($(window).height() - $("#modal1").height() - 200) / 2,
"left":($(window).width() - $("#modal1").width())/2
});
}, 250);
您只需要将此代码放入代码的开放函数中,如下所示
dialogDiv.dialog({
title: "Confirm Delete",
autoOpen: false,
width: 470,
height: 200,
modal: true,
draggable: false,
resizable: false,
closeOnEscape: false,
create: function (event) { $(event.target).parent().css({ 'position': 'fixed', 'top': '50%', 'margin-top': '-100px', 'left': '50%;', 'margin-left': '-235px' }); },
open: function(event, ui) {
$(".ui-dialog-titlebar-close", ui.dialog | ui).hide();
setTimeout(function () {
$("#modal1").css({
"top": ($(window).scrollTop()) + ($(window).height() - $("#modal1").height() - 200) / 2,
"left":($(window).width() - $("#modal1").width())/2
});
}, 250);
},
buttons: {
"Delete": function () {
$("#repFilterId").val(selectedItemId);
$("#deleteForm").submit();
clearLastValues();
},
"Cancel": function () {
clearLastValues();
dialogDiv.dialog("close");
}
}
});
.ui对话框{
位置:固定!重要
}你能解释一下什么是转换:翻译(-50%,-50%);做请此属性允许您旋转、缩放、移动、倾斜。。。这是css代码。。。对不起,我以为是jQuery代码现在还有另一个问题:只有弹出窗口的内容(保存弹出窗口的div中的文本)随屏幕移动,对话框本身不跟随屏幕。这不起作用,弹出窗口出现在左上方的其他div下!那个页面上有CSS吗?例如容器或任何正在进行某种对齐的东西?但是它对不同的屏幕大小没有响应。似乎您已经找到了如何使对话框保持居中的原始问题的答案。请不要编辑您的问题以添加其他问题。相反,只要问一个新的。确保新的问题是独立的,当然也要遵循通常的问题规则。不,它没有问问题,因为我在问题中补充道(editet),它导致了什么其他问题不,它回答了你原来的问题,这带来了一个额外的问题,应该在额外的问题中提出。请看,好的。我提出了另一个关于同一主题的具体细节的问题。我要删除这个,所以如果你能帮我得到答案,这里是链接不要删除这个问题;然后是那些帮助你失去代表的人。把它滚回原来的状态。你能再解释一下把这个代码放在哪里吗把这个代码放在你的模式弹出窗口是你写的开放事件的地方。或者更好的是,你也可以编写有问题的html代码。实际上没有比问题中更多的代码,但我提出了一个更详细的问题,看一看:我仍然不知道把代码放在哪里。你能用更多的细节来编辑答案吗@nirmal@Arianit您现在可以从上面的内容复制您的答案。欢迎使用Stackoverflow。请用更多信息更新您的答案,使其更相关。这将有助于大家以后讨论这个问题。
dialogDiv.dialog({
title: "Confirm Delete",
autoOpen: false,
width: 470,
height: 200,
modal: true,
draggable: false,
resizable: false,
closeOnEscape: false,
create: function (event) { $(event.target).parent().css({ 'position': 'fixed', 'top': '50%', 'margin-top': '-100px', 'left': '50%;', 'margin-left': '-235px' }); },
open: function(event, ui) {
$(".ui-dialog-titlebar-close", ui.dialog | ui).hide();
setTimeout(function () {
$("#modal1").css({
"top": ($(window).scrollTop()) + ($(window).height() - $("#modal1").height() - 200) / 2,
"left":($(window).width() - $("#modal1").width())/2
});
}, 250);
},
buttons: {
"Delete": function () {
$("#repFilterId").val(selectedItemId);
$("#deleteForm").submit();
clearLastValues();
},
"Cancel": function () {
clearLastValues();
dialogDiv.dialog("close");
}
}
});