发布网友 发布时间:2022-04-23 14:58
共2个回答
热心网友 时间:2022-04-23 11:38
直接用jQuery ui 的dialog组件不就行了。完全符合你的要求热心网友 时间:2022-04-23 12:56
好像在chrome上面满足你的要求啊。你是用什么浏览器。追问我用的就是chrome啊,现在的问题是,当内容过多出现滚动条的时候,把弹出框关掉,然后再打开,就不行了,不能够获取popInner的高度,还有在有滚动条的时候删除数据,减少到没有滚动条的时候,也不能垂直居中,不知道哪写的不对,,,追答应该在var popW = $(id).width();之前把弹窗显示出来,然后就能获得popInner的高度了。
然后建议不要使用live了,因为最新版本已经不支持live了,用on取代。
//定位
function place(id) {
var winW = $(window).width();
var winH = $(window).height();
// display拿到上面
$(id).css({
'display': 'block'
});
var popW = $(id).width();
var popH = $(id).height();
console.log('弹出框的高度为' + popH);
var popInnerH = $(id).find('.popInner').height();
var left = (winW - popW) / 2;
var top = (winH - popH) / 2;
$(id).css({
'left': left + 'px',
'top': top + 'px'
});
if (popInnerH = (winH - 40)) {
$(id).css({
'top': (winH - (winH - 40)) / 2 + 'px',
'height': (winH - 40) + 'px',
'overflow': 'auto'
});
console.log('高度溢出时弹出框的内容器高度为' + popInnerH);
console.log('高度溢出时弹出框的top为' + $(id).css('top'));
}
}