【问题标题】:Google Maps Embed with Dynamic Drive Tabs (NOT jquery-ui Tabs)谷歌地图嵌入动态驱动器选项卡(不是 jquery-ui 选项卡)
【发布时间】:2014-02-28 23:11:33
【问题描述】:

在花一整天的时间阅读这个常见问题后,当主页在页面加载时无法正确显示地图时,人们会遇到与动态标签相关的谷歌地图嵌入程序。地图未居中。有没有人对如何解决这个问题有任何建议,我非常愿意尝试任何事情。

我目前正在使用Dynamic Content 标签。我想知道有没有办法在我的情况下解决这个问题。

只是网站上的一个例子。

<ul id="countrytabs" class="shadetabs">
<li><a href="#" rel="country1" class="selected">Tab 1</a></li>
<li><a href="#" rel="country2">Contacts</a></li>
<li><a href="#" rel="country3">Tab 3</a></li>
<li><a href="#" rel="country4">Tab 4</a></li>
<li><a href="http://www.dynamicdrive.com">Dynamic Drive</a></li>
</ul>


<div id="country1" class="tabcontent">
Tab content 1 here<br />Tab content 1 here<br />
</div> 
<div id="country2" class="tabcontent">
Tab content 1 here<br />Google Maps<br />
</div> 

谷歌地图嵌入

<iframe width="400" height="425" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?ie=UTF8&q=Ace+Liquors&fb=1&gl=us&hq=ace+liquor+glendale&cid=17378010379165161653&t=m&ll=34.162084,-118.301747&spn=0.007546,0.008562&z=16&iwloc=A&output=embed"></iframe>

联系人标签的个人代码如下:

<li>
<a id="contact" rel="hours" href="#">
<span>Contact</span>
</li>

据我了解,我需要一段 jquery 代码,以便在单击联系人时加载地图。任何人有任何建议强制地图仅在此事件发生时加载?

【问题讨论】:

  • 有什么问题?地图的中心位置是否正确,或者 iframe 的中心位置不正确?
  • 但我没有使用 jquery ui 选项卡。
  • 我觉得这无关紧要。该问题是使用 Google Maps API 直接在您的页面中生成地图。您正在使用 iframe,这是一种截然不同的方法。
  • 不是真的,因为当他们解决问题时,当 javascript 检测到 /index.php#something 出现时,他们会触发一个事件,请执行此操作。我的脚本不能这样运行,它不会像 jquery ui 选项卡那样触发页面上的#extension。到目前为止,我已经连续搜索了一周没有任何成功。我找到的大多数答案都是使用 jquery ui 选项卡作为解决问题的方法,这可能是我对 javascript 的了解不够,无法使用他们的方法来完成我的工作。这就是我悬赏的原因。

标签: javascript jquery html google-maps google-maps-embed


【解决方案1】:

对我来说,您似乎正试图依靠
标签进行布局?也许使用 CSS 设置 iframe 的样式会有所帮助。通常,我将类似 iFrame 的内容放在第二个 div 中(通常带有包装器类),然后定位包装器。

我会建议这样的事情:

<div id="country2" class="tabcontent">
<p>Tab content 1 here</p>
<div class = "mapWrapper">
    <iframe width="400" height="425" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?ie=UTF8&q=Ace+Liquors&fb=1&gl=us&hq=ace+liquor+glendale&cid=17378010379165161653&t=m&ll=34.162084,-118.301747&spn=0.007546,0.008562&z=16&iwloc=A&output=embed"></iframe>
</div>
</div> 

然后在你的 CSS 中

.tabcontent
{
    width: 100%; /* This must be set to something, or you won't be able to have
                     the inner div centered correctly*/
}
.mapWrapper
{
    width:auto; margin: 0 auto;
}

【讨论】:

  • 我正在使用 4
    将地图放置在当前标签的中间。这没有解决我的问题,请参考 jsfiddle.net/DqZT8/3 是脚本正在运行的内容。我看不出
    与我的脚本有什么关系。
【解决方案2】:

您从 StackOverflow 提到的问题似乎不符合您的需求,因为使用了 Google 地图的 Javascript API。

我假设使用您的标签 Javascript 无法计算 iframe 的初始宽度和高度以使其居中。

我无法使用动态内容选项卡,因为锚选项卡链接在演示页面中不起作用。 我已经设法在带有纯 CSS 选项卡的 JsFiddle 中使用嵌入式 Google 地图 (http://jsfiddle.net/bKaxg/342/)

看一下提供的样式,我已经将 iframe 设置为块显示

.content iframe{
    margin:0 auto;
    display:block;
}

您还可以使用 Twitter Bootstrap 的标签 (http://jsfiddle.net/K9LpL/248/)

甚至是简单易用的自定义脚本方法 (http://jsfiddle.net/e3Lhc/29/)

编辑:我已经设法使用提供的脚本,使用我的 CSS 的第一行将您的地图居中 http://jsfiddle.net/DqZT8/3/

【讨论】:

  • 我更喜欢标签中的地图,宽度为 100%。例如http://jsfiddle.net/bKaxg/345/
  • 你的最后一个例子,是我的脚本,如果你注意到你登陆的标签必须更正中间的大头针,而其余的标签不正确。这是当前的问题,你是第一行 css 并没有解决这个问题,当一个人进入网站时,他们不在联系人选项卡上,当他们获得联系人选项卡时,地图偏离中心,因此你的 tab2 , 3, 4. 还有:除了第一个 ->bKaxg/342 之外,您的所有示例实际上都不起作用,但此时我不愿意更改标签结构。
  • 哦,我明白了,请阅读嵌入谷歌地图的文档。我已经尝试过地图的宽度和高度,以便提供一个使实际地图居中的通用解决方案。如果您希望将标记放置在中心,则必须使用 JavaScript API 或尝试创建新的嵌入式地图。
  • 不是关于标记,而是关于地图在实际位置的中心,它偏向一边。
  • 在 iframe 上添加提供的高度和宽度,地图将居中。您提供的 iframe 在选项卡内部和外部呈现相同的内容。查看更新小提琴jsfiddle.net/DqZT8/5
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 2013-09-28
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多