Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery选项卡;谷歌地图只显示一个平铺_Jquery_Jquery Ui_Google Maps Api 3 - Fatal编程技术网

JQuery选项卡;谷歌地图只显示一个平铺

JQuery选项卡;谷歌地图只显示一个平铺,jquery,jquery-ui,google-maps-api-3,Jquery,Jquery Ui,Google Maps Api 3,是的,这个问题很常见,我在这个网站上看到了很多解决方案,但没有一个是有用的。我知道重新调整大小会解决问题。不是jQuery专家,我不知道在页面加载并且Headline 3处于活动状态后如何重新调整地图的大小。我创建了一个JFiddle示例。感谢您的帮助 谢谢 忽略顶部注释和@Dr.Molle提供的链接,因为这些链接没有提供我一直在寻找的解决方案,请查看我已接受的解决方案。解决此问题的一种方法是在选择选项卡后在地图上触发一个调整大小事件。如果移动var映射到全局范围,然后可以更改此行: $( "

是的,这个问题很常见,我在这个网站上看到了很多解决方案,但没有一个是有用的。我知道重新调整大小会解决问题。不是jQuery专家,我不知道在页面加载并且
Headline 3
处于活动状态后如何重新调整地图的大小。我创建了一个JFiddle示例。感谢您的帮助

谢谢


忽略顶部注释和@Dr.Molle提供的链接,因为这些链接没有提供我一直在寻找的解决方案,请查看我已接受的解决方案。

解决此问题的一种方法是在选择选项卡后在地图上触发一个
调整大小
事件。如果移动
var映射到全局范围,然后可以更改此行:

$( ".tabs" ).tabs();
致:


您可以进一步改进这一点,可能是通过检查特定选项卡,并仅在选择“地图”选项卡时触发“调整大小”,但这应该可以让您开始。这里有一个。

解决此问题的一种方法是在选择选项卡后在地图上触发一个
resize
事件。如果移动
var映射到全局范围,然后可以更改此行:

$( ".tabs" ).tabs();
致:

您可以进一步改进这一点,可能是通过检查特定选项卡,并仅在选择“地图”选项卡时触发“调整大小”,但这应该可以让您开始。这里有一个。

通常情况下,在隐藏的画布上初始化谷歌地图会导致出现“单个平铺”的情况,这里就是这种情况

如果地图最初是隐藏的,并且您不想调整大小,那么您的两个主要选项是:

  • 在一块可见的画布上初始化,然后立即隐藏它——希望地图不会闪烁显示

  • 在第一次显示时初始化地图。我在我的一个应用程序中这样做,发现延迟一点也不令人无法接受,尽管有一些重量级的分层

我想你也可以考虑以下的可能性,尽管我从未尝试过:

  • 在“可见”屏幕外画布上初始化地图,然后在第一次查看时在屏幕上重新定位。此后,画布可以常规地隐藏/显示
编辑 是的,地图可以在屏幕外初始化,然后在屏幕上移动

HTML:

Javascript:

var $mapCanvas = $("#map-canvas");
map = new google.maps.Map($mapCanvas.get(0), myOptions);
var listenerHandle = google.maps.event.addListener(map, 'idle', function() {
    $mapCanvas.appendTo($("#map-placeholder"));
    google.maps.event.removeListener(listenerHandle);
});
请参见

通常,在隐藏的画布上初始化谷歌地图会导致出现“单一平铺”情况,这里的情况就是这样

如果地图最初是隐藏的,并且您不想调整大小,那么您的两个主要选项是:

  • 在一块可见的画布上初始化,然后立即隐藏它——希望地图不会闪烁显示

  • 在第一次显示时初始化地图。我在我的一个应用程序中这样做,发现延迟一点也不令人无法接受,尽管有一些重量级的分层

我想你也可以考虑以下的可能性,尽管我从未尝试过:

  • 在“可见”屏幕外画布上初始化地图,然后在第一次查看时在屏幕上重新定位。此后,画布可以常规地隐藏/显示
编辑 是的,地图可以在屏幕外初始化,然后在屏幕上移动

HTML:

Javascript:

var $mapCanvas = $("#map-canvas");
map = new google.maps.Map($mapCanvas.get(0), myOptions);
var listenerHandle = google.maps.event.addListener(map, 'idle', function() {
    $mapCanvas.appendTo($("#map-placeholder"));
    google.maps.event.removeListener(listenerHandle);
});

请参见

为什么会有负面影响?在我的问题中我没有说过吗?我没有做地面工作吗?如果我能理解人们在说什么,我就会把它修好。因为我没有得到解决方案,所以我发布了这个问题。我们是否应该在新的一天再次回答这个问题?我不这么认为(因此否决票)。使用副本中建议的解决方案修复您的小提琴大约需要30秒:@Dr.Molle,您的30秒解决方案甚至不是正确的解决方案。地图甚至没有居中?这就是你认为的解决方案?请看我批准的解决方案。你的问题不是地图居中,如果我同意,我会再投1票反对票could@Dr谁你在开玩笑吗?不考虑现有代码的解决方案有什么意义?现在你在责怪这个问题?誓言你有很多消极的能量。你需要用它做一些建设性的事情。为什么要否定它?在我的问题中我没有说过吗?我没有做地面工作吗?如果我能理解人们在说什么,我就会把它修好。因为我没有得到解决方案,所以我发布了这个问题。我们是否应该在新的一天再次回答这个问题?我不这么认为(因此否决票)。使用副本中建议的解决方案修复您的小提琴大约需要30秒:@Dr.Molle,您的30秒解决方案甚至不是正确的解决方案。地图甚至没有居中?这就是你认为的解决方案?请看我批准的解决方案。你的问题不是地图居中,如果我同意,我会再投1票反对票could@Dr谁你在开玩笑吗?不考虑现有代码的解决方案有什么意义?现在你在责怪这个问题?誓言你有很多消极的能量。你需要做一些有建设性的事情。完美的解决方案。初始化屏幕外,然后移动到第三个选项卡。这正是我想要的,因为它考虑到了地图的中心。谢谢另外,确保您正在使用事件初始化映射,而不是直接在domload
google.maps.event.addDomListener(窗口,“load”,function(){…})之后初始化映射完美解决方案。初始化屏幕外,然后移动到第三个选项卡。这正是我想要的,因为它考虑到了地图的中心。谢谢另外,确保您正在使用事件初始化映射,而不是直接在domload
google.maps.event.addDomListener(窗口,“load”,function(){…})之后初始化映射var $mapCanvas = $("#map-canvas");
map = new google.maps.Map($mapCanvas.get(0), myOptions);
var listenerHandle = google.maps.event.addListener(map, 'idle', function() {
    $mapCanvas.appendTo($("#map-placeholder"));
    google.maps.event.removeListener(listenerHandle);
});