我是Rails、HTML和CSS的初学者,我正试图在我的Rails应用程序中呈现一个Mapbox.js映射。然而,地图没有出现。正如您在图片中所看到的,缩放控件确实会正确显示。

当我试图解决错误时,我偶然发现了这常见问题。我已经确认我的访问令牌、地图ID和帐户使用限制不是问题。
以下是我的代码:
<script src='https://api.mapbox.com/mapbox.js/v3.0.1/mapbox.js'></script>
<link href='https://api.mapbox.com/mapbox.js/v3.0.1/mapbox.css' rel='stylesheet'/>
<div class="content">
  <% if @points[@unit.name] != nil && @points[@unit.name].length %>
      <div id='map' style="
          position: relative;
          margin-left: -10px;
          bottom: 0;
          width: 700px;
          height: 700px;">
      </div>
      <script type='text/javascript'>
          L.mapbox.accessToken = 'heres-my-access-token';
          var map = L.mapbox.map('map', 'mapbox.satellite').setView([52.214360, 6.860573], 8);
      </script>
  <% end %>
... other <div>s
</div>
<script>
    $('map').show();
    map.invalidateSize();
</script>我在一个相当大的应用程序中工作,所以这个问题可能是由样式或什么引起的。我根据FAQ提示进行了检查,页面上的元素并没有被设置为最初的“隐藏”位置。我不太确定invalidateSize()命令的放置是否正确.
我现在几乎被困住了-有人有其他的想法来解决这个问题吗?
发布于 2017-03-08 14:00:43
$('map').show();是否应该是$('#map').show();
您也可以通过只在doc上运行它来检查这是否启动得太快。
$(function() {
  $('#map').show();
  map.invalidateSize();
});https://stackoverflow.com/questions/42672883
复制相似问题