使用CSS使谷歌地图api循环

时间:2017-07-21 17:35:31

标签: javascript html css google-maps

我正在使用# create a list of data frames for each rating value by_rating <- split(your_data, your_data$Rating) # then subset the first row of each data set previosly ordered lapply(by_rating, function(df) df[order(df$One_Year_Return, decreasing = TRUE), ][1, ]) 使地图成为圆形。我遇到的问题是,当地图变为圆形时,页面加载地图时是正方形。这是我创建的jsfiddle https://jsfiddle.net/tnk240zb/2/。单击播放按钮时,地图为正方形。有没有办法让图像显示为圆形,因此它不会显示正方形一秒钟?

代码段

&#13;
&#13;
border-radius: 50%;
&#13;
#bubble {
  margin: 0 auto;
  width: 400px;
  height: 85px;
  overflow: hidden;
  position: relative;
  border-bottom-left-radius: 40px;
  border-top-left-radius: 40px;
  border-bottom-right-radius: 40px;
  border-top-right-radius: 40px;
  background-color: #FFF;
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05), 0 8px 50px rgba(0, 0, 0, 0.05);
}

p {
  font-weight: bold;
  margin-top: -50px;
}

img {
  padding-bottom: 10%;
}

#map-canvas {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin-top: 3px;
  margin-left: 3px;
}
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

渲染地图本身的div(#map-canvas div .gm-style div)在其内联样式中使用z-index: 0

<div tabindex="0" style="position: absolute; z-index: 0; left: 0px; top: 0px; height: 100%; width: 100%; padding: 0px; border-width: 0px; margin: 0px; cursor: url(&quot;https://maps.gstatic.com/mapfiles/openhand_8_8.cur&quot;) 8 8, default;">

#map-canvas&#39; s z-index设置为高于0,它会正常工作:

#map-canvas {
  /* (...) */
  z-index: 1;
}

JSFiddle:https://jsfiddle.net/yuriy636/tnk240zb/3/

答案 1 :(得分:1)

将地图放在.wrapper div中。

然后,向该div添加pseudo-element并为其提供radial-gradient背景,中间部分为透明

其他背景颜色必须与您的文档背景相匹配。在这种情况下,它是白色的。

然后将pointer-events:none添加到叠加层,以便可以点击它

这也可以防止在地图中移动并拖动地图时出现问题。

它将始终保持border-radius

旁注: 当您隐藏Google徽标时,您的设计理念会破坏Google地图的条款和条件。如果您必须完成此操作,请务必仔细阅读条款和条件

工作示例:

&#13;
&#13;
.wrapper {
  overflow: hidden;
  width: 400px;
  height: 400px;
  position: relative;
}

.wrapper:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: radial-gradient(transparent 60%, white 40%);
}
&#13;
<!-- initilize map -->
<script>
  function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
      center: {
        lat: 40.674,
        lng: -73.945
      },
      zoom: 12,
    })
  }
</script>



<div class="wrapper">
  <div id="map" style='width: 100%; height: 100%;'></div>
</div>

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDHu4QBgWONqtdOWVLTW5XZ51B1eOU6SWw&callback=initMap" async defer></script>
&#13;
&#13;
&#13;