地图不占用整个div

时间:2012-01-09 10:29:14

标签: javascript html css web

我正在使用地理编码来显示显示用户位置的Google地图。我正在寻找带有滑动菜单的地图。我遇到的问题是当你打开滑动菜单时,地图只会占据左上角的一个小区域,但只要你调整浏览器窗口的大小,地图就会像我想要的那样占据整个区域。无论您以何种方式调整浏览器窗口的大小,即使将其缩小,也会发生这种情况。如果您需要查看更多我的代码,请告诉我:

滑动菜单功能

$(document).ready(function()
  {
    $(".content").hide(); //updated line, removing the #panel ID.
    $('#tab').toggle(function() //adding a toggle function to the #tab
      {
        $('#panel').stop().animate(
        {
          width:"800px", opacity:0.8 //to adjust width of bar
        }
        , 500, function() //sliding the #panel to 200px
        {
          $('.content').fadeIn('slow'); //slides the content into view.
        });
       },
     function() //when the #tab is next cliked
     {
       $('.content').fadeOut('slow', function() //fade out the content
       {
         $('#panel').stop().animate(
           {
             width:"0", opacity:0.1 //slide the #panel back to a width of 0
           }
           , 500);
       });
     });
  });

滑动菜单html

<div id="panel">
  <div class="content">
    <div id="mapContainer"></div>
  </div>
</div>

CSS

#tab {
  width: 30px;
  height: 100px;
  position: fixed;
  left: 0px;
  top: 100px;
  display: block;
  cursor: pointer;
  background-color: #ff0000;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

#panel {
  position: fixed;
  left: 0px;
  top: 50px;
  background-color: #ffffff;
  height: 500px;
  width: 0px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

#mapContainer {
    height: 500px;
    width: 800px;
    border:10px solid #eaeaea;
}

1 个答案:

答案 0 :(得分:0)

地图容器需要宽度和高度才能正确显示地图,但似乎动画干扰了这些值。

当调整浏览器大小时,地图有效,因为正确设置了宽度和高度并且引发了resize事件。

解决问题的最快方法是在动画结束时调用resize方法:

google.maps.event.trigger(map, 'resize');

JSFiddle更新:http://jsfiddle.net/uADHv/2/