jquery - 在 Bootstrap Carousel 中嵌入 Google map

标签 jquery css twitter-bootstrap google-maps google-maps-embed

我有一个响应式设计,其中在每个 Bootstrap 轮播幻灯片中插入了多个 map 。

使用最新的 Google map API,一些 map 看起来缩小到可怕的南极

Issue

经过一些研究后,我发现选项卡也存在类似问题,因为隐藏了内容。但是我无法获得任何建议的响应来处理我的元素。

我试过的最后一个代码是

$(document).ready(function() {
    $('#carousel-example-generic').on('slide.bs.carousel', function () {
        google.maps.event.trigger(map, 'resize');
    })
});

但我收到错误“Uncaught ReferenceError: google is not defined”

map 存储在我的数据库中并使用 API 输出的代码嵌入

示例:

<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d1961.5104998775728!2d-66.88076565031373!3d10.499010518599084!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0000000000000000%3A0xfdd50a9e95ba1b19!2sEnoba+Sistemas!5e0!3m2!1ses-419!2sve!4v1415992894629!zoom=18" width="1350" height="400" frameborder="0" style="border:0"></iframe>

我现在卡住了

最佳答案

使用 Google Map iframe 执行此操作的一种方法是使用 jquery.livequery ( https://github.com/hazzik/livequery ) 检查它是否可见,如果不可见则重新加载源。

演示:https://jsbin.com/guzada/1/

$(document).ready(function() {
   // REQUIRES jquery.livequery
   $('.google-map iframe:visible').livequery(function() {
     var mapFrame = $(this);
     if (!$(mapFrame).hasClass('map-refreshed')) {
       mapFrame.attr('src', mapFrame.attr('src')+'');
       mapFrame.addClass('map-refreshed');
    }
});
  
});

HTML

  <div id="carousel-1" class="carousel slide">
     <div class="carousel-inner">
        <div class="item active">
           <div class="embed-responsive embed-responsive-16by9 google-map">
              <iframe class="embed-responsive-item" src="https://www.google.com/maps/embed/v1/place?q=Eiffel%20Tower%2C%20Avenue%20Anatole%20France%2C%20Paris%2C%20France&key=AIzaSyAFUKSu28KvFk67YcSlUWeUJ2TpcifSVmQ"></iframe>
           </div>
        </div>
        <div class="item">
           <div class="embed-responsive embed-responsive-16by9 google-map">
              <iframe class="embed-responsive-item" src="https://www.google.com/maps/embed/v1/place?q=Trafalgar%20Square%2C%20London%2C%20United%20Kingdom&key=AIzaSyAFUKSu28KvFk67YcSlUWeUJ2TpcifSVmQ"></iframe>
           </div>
        </div>
        <!-- Carousel Controls -->
        <a class="left carousel-control" href="#carousel-1" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left"></span>
        </a>
        <a class="right carousel-control" href="#carousel-1" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right"></span>
        </a>
     </div>
     <ol class="carousel-indicators">
        <li data-target="#carousel-1" data-slide-to="0" class="active"></li>
        <li data-target="#carousel-1" data-slide-to="1" ></li>
     </ol>
  </div>
  <!--/.carousel-->

关于jquery - 在 Bootstrap Carousel 中嵌入 Google map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26976982/

相关文章:

css - "border-radius"可以接受吗?

html - 在全 Angular 元素上创建均匀阴影

javascript - 如何从 Bootstrap 获取移动下拉菜单?

html - ng-水平重复

javascript - Three.js 渲染和 Bootstrap 网格

javascript - jQuery slideToggle() 同时处理两个项目

forms - jquery.form.js 无法在 Internet Explorer 9 中运行

javascript - 如何用onclick功能赞美音频

jquery - 如何删除 jQuery 选择的最后一个元素?

css - 没有内容只是背景,为什么有滚动条?