问题:
我在 jQuery Mobile 文档中有一个对话框页面,其中包含一个用于显示位置的小型 Google 地图。我想在加载对话框页面之前加载地图。如:
$("#dialogPage").bind("pagebeforeshow", function() {
initializeSmallMap();
});
但是,只要包含div
的地图具有display
none 属性,Google Maps 就会无法正常工作(请参阅Google Maps Display:None Problem)。而且由于这个函数是在页面实际加载之前执行的,所以包含div
自然有一个display
属性为none。
现在,显然,有一个简单的解决方案。我需要做的就是在页面显示后初始化地图,这使得它div
具有块的显示属性:
$("#dialogPage").bind("pageshow", function() {
initializeSmallMap();
});
但是,由于对话框已经加载,地图出现时会出现烦人的、明显的闪烁。
问题:
如何消除所描述的闪烁?
可能的解决方案:
div
包含的地图具有display
块属性。如果我没有使用 jQuery Mobile,那么实现这个效果会很简单,而且在需要时仍然隐藏地图:
position: absolute;
left: -10000px;
display: block;
但是,由于 jQuery Mobile 会自动覆盖页面样式,我不知道如何让它工作。
div
包含地图的大小。我用谷歌搜索了这个选项,但没有运气,但考虑到我糟糕的谷歌搜索技能,如果这真的可行,我不会完全感到惊讶。