【问题标题】:How to add google map in bootstrap modal如何在引导模式中添加谷歌地图
【发布时间】:2014-12-26 09:08:36
【问题描述】:

我正在使用 Google Embed 地图选项将地图插入到 Bootstrap 模态中,但模态显示时显示了地图的形状,但只显示了地图的一部分,其余部分为灰色。

这是我使用的代码:

    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Click For Map</button>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

这里我附上了jquery

$('#myModal').on('shown.bs.modal', (function() {
  var mapIsAdded = false;

  return function() {
    if (!mapIsAdded) {
      $('.modal-body').html('<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d9808.974038062652!2d4.3244048859985185!3d52.07529689519739!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1snl!2snl!4v1419588821379" width="100%" height="400" frameborder="0" style="border:0"></iframe>');

      mapIsAdded = true;
    }    
  };
})());

我无法找出确切的问题,任何帮助将不胜感激。

【问题讨论】:

    标签: html twitter-bootstrap google-maps


    【解决方案1】:

    这与最初的模态 display: none 有关。我认为这会使iframe 中的 Google Maps JavaScript 无法正常工作。要亲自查看,请尝试删除 .modal 类并打开模式。

    最简单的解决方案可能是在第一次打开模式时注入 iframe,使用 shown.bs.modal 事件:

    $('#myModal').on('shown.bs.modal', (function() {
      var mapIsAdded = false;
    
      return function() {
        if (!mapIsAdded) {
          $('.modal-body').html('<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d9808.974038062652!2d4.3244048859985185!3d52.07529689519739!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1snl!2snl!4v1419588821379" width="100%" height="400" frameborder="0" style="border:0"></iframe>');
    
          mapIsAdded = true;
        }    
      };
    })());
    

    或查看此Codepen

    在此旁边,iframe 有一个固定的width="800" 属性。我建议您将其更改为width="100%",因为模态窗口没有固定宽度。

    【讨论】:

    • 对不起,我已经把宽度改成了 100%,工作正常,但是下面的部分仍然是灰色的
    • 您是否也尝试过使用 javascript 注入 iframe?
    • 是的,我做了,我创建了一个 javascript(注入代码)文件并将其附加到主文件中。
    • 不知道在这种情况下是什么问题,Codepen 对你来说可以正常工作吗?
    • 在这种情况下,我只能建议您尝试找出您的代码和 codepen 之间的差异,或者扩展问题中的代码以显示问题。或许还要加个截图?
    猜你喜欢
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    相关资源
    最近更新 更多