我正在使用jQuery mobile并尝试在页面加载时显示jQuery弹出。但是当页面加载时,弹出窗口不会出现在中心,而是弹出窗口的左上角出现在中心。
但是一旦浏览器窗口大小发生变化,弹出窗口就会自动移动到中心(即使我按 F12 为开发人员工具)。然后所有频繁调用 $('#popupBasic').popup("open");使其显示在屏幕中央。
但第一次弹出框的左上角出现在中间。
试试这个:data-position-to="window"。
这是来源
您可以尝试在pageshow上重新定位弹出窗口:
$( '#popupLogin' ).popup( 'reposition', 'positionTo: window' );
我认为您正在经历的取决于浏览器完全绘制页面之前发生的定位。您可以通过像这样重新定位弹出窗口来克服此问题:
$(document).on('pageshow', '.selector', function(){
$('#popupBasic').popup('reposition', 'positionTo: window');
});
$(document).on("popupafteropen", function() {
$('#popup').popup('reposition', 'positionTo: window');
});
您可以使用自定义弹出事件在打开后重新定位它
我遇到了同样的错误。您只想在绘制页面后显示弹出窗口。
添加代码以侦听 pageshow 事件而不是 pageinit 事件可能会解决您的问题。它为我修复了它。
这是一个非常模糊的问题。
您应该提供的一些项目:
- 您在什么浏览器上测试,什么版本?
- 什么版本的 JQM?
- 是否有任何自定义 CSS 与 JQM 交互?
从 JQM 1.2 开始,可用的弹出选项:
默认值:"原点"
设置弹出窗口将居中的元素。它具有以下值:
"origin" 当弹出窗口打开时,将传递给 open() 调用的坐标居中(请参阅方法页面)。
"窗口" 当弹出窗口打开时,在窗口中居中。
jQuery 选择器 当弹出窗口打开时,基于选择器创建一个 jQuery 对象,并居中查看它。选择器将筛选出以":visible"可见的元素。如果结果为空,弹出窗口将在窗口中居中。
源
当我手动设置弹出窗口div
的宽度时,它对我有用; 尝试:
$("#popupBasic").css("width","200px");