2016-11-04 3 views
-2

Я разместил свою навигацию в моей кнопке/вкладке аккордеона, так как я хочу, чтобы пользователь мог просто щелкнуть по вкладке и увидеть их, когда им это нравится. Карта и весь код, который нужно сделать с картой, полностью функциональны, поскольку я не получаю ошибок, когда я тестирую ее на консоли, но по какой-то причине она по-прежнему не отображается. Я также использовал API-ключ. Он будет работать, только когда я тестирую его с помощью консоли. Почему он не отображает карту, когда я нажимаю вкладку?Почему моя карта не отображается на вкладке Аккордеона?

Это код у меня есть для моей карты

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <meta charset = "utf-8"> 
    <title>London Tour Guide</title> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css"> 

    <script src="jquery.js"></script> 

    <style> 
     div.container { position: absolute; top: 10px; left: 400px; width: 720px; height: 1300px; 
      background-color: white; } 

     div.content { 
      width: 700px; height: 1200px; 
      background-color: lightblue; padding: 5px; } 

     h1.welcome {font-family: Verdana, sans-serif; color: orangered; 
      text-align: center; text-shadow: 2px 2px Grey; 
      transition: 4s;} 

     h1.stpauls{font-family: Verdana, sans-serif; color: orangered; 
      text-align: center; 
     } 

     h1.welcome:hover{transform: rotateX(360deg); color:yellow; } 

     p.medium { 
    font-size: 12pt; 
    font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif; 
    color: #333; 
     } 

     p.small { 
    font-size: 12pt; 
    font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif; 
    color: #333; 
     } 

     img { 
      display: block; 
      margin: auto; 
     } 



     ul { 
      list-style-type: none; 
      margin: 0; 
      padding: 0; 
      overflow: hidden; 
      background-color: #333; 
     } 

     li { 
      float: left; 
     } 

     li a, .dropbtn { 
      display: inline-block; 
      color: white; 
      text-align: center; 
      padding: 14px 16px; 
      text-decoration: none; 
     } 

     li a:hover, .dropdown:hover .dropbtn { 
      background-color: red; 
     } 

     li.dropdown { 
      display: inline-block; 

     } 

     .dropdown-content { 
      display: none; 
      position: absolute; 
      background-color: #f9f9f9; 
      min-width: 160px; 
      box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
     } 

     .dropdown-content a { 
      color: black; 
      padding: 12px 16px; 
      text-decoration: none; 
      display: block; 
      text-align: left; 

     } 

     .dropdown-content a:hover {background-color: #f1f1f1} 

     .dropdown:hover .dropdown-content { 
      display: block; 
     } 


     .dropbtn1 { 
      background-color: #4CAF50; 
      color: white; 
      padding: 16px; 
      font-size: 16px; 
      border: none; 
      cursor: pointer; 
     } 


     .dropbtn1:hover, .dropbtn1:focus { 
      background-color: #3e8e41; 
     } 


     .dropdown1 { 
      position: relative; 
      display: inline-block; 
     } 


     .dropdown1-content { 
      display: none; 
      position: absolute; 
      background-color: #f9f9f9; 
      min-width: 160px; 
      box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
     } 


     .dropdown1-content a { 
      color: black; 
      padding: 12px 16px; 
      text-decoration: none; 
      display: block; 
     } 


     .dropdown1-content a:hover {background-color: #f1f1f1} 

     .show{display:block;} 

     button.accordion { 
      background-color: #eee; 
      color: #444; 
      cursor: pointer; 
      padding: 18px; 
      width: 100%; 
      border: none; 
      text-align: left; 
      outline: none; 
      font-size: 15px; 
      transition: 0.4s; 
     } 

     button.accordion.active, button.accordion:hover { 
      background-color: #ddd; 
     } 

     div.panel { 
      padding: 0 18px; 
      display: none; 
      background-color: white; 
     } 

     div.panel.show { 
      display: block; 
     } 




    </style> 
</head> 
<body> 

<div class="container"> 
<div class = "content"> 

    <div class = "header"> 
     <img src = "headerlondon.jpg" alt = "header"></div> 

    <ul> 
     <li><a class="active" href="Project.html">Home</a></li> 
     <li><a href="Map.html">Maps </a></li> 
     <li class="dropdown"> 
      <a href="#" class="travel">Travel <i class="fa fa-caret-down"></i></a> 
      <div class="dropdown-content"> 
       <a href="Bus.html">Bus</a> 
       <a href="Taxi.html">Taxi</a> 
       <a href="Tube.html">Tube</a> 
      </div> 
     </li> 
     <li class="dropdown"> 
      <a href="#" class="sightseeing">SightSeeing <i class="fa fa-caret-down"></i></a> 
      <div class="dropdown-content"> 
       <a href="LondonEye.html">London Eye</a> 
       <a href="TowerofLondon.html">Tower of London</a> 
       <a href="BigBen.html">Big Ben</a> 
       <a href="StPaulsCathedral.html">St Pauls Cathedral</a> 
       <a href="BuckinghamPalace.html">Buckingham Palace</a> 
       <a href="WestMinister.html">WestMinister</a> 
      </div> 
     </li> 
     <li class="dropdown"> 
      <a href="#" class="Museums">Museums <i class="fa fa-caret-down"></i></a> 
      <div class="dropdown-content"> 
       <a href="BritishMuseum.html">British Museum</a> 
       <a href="ScienceMuseum.html">Science Museum</a> 
       <a href="NationalHistoryMuseum.html">National History Museumm</a> 

      </div> 

     </li> 
    </ul> 

    <button class="accordion">Navigation</button> 
    <div class="panel" style = "position: relative"> 
    <div id="map" style="width:50%;height:250px"></div> 
     </div> 



</div> 

    <script> 
     var acc = document.getElementsByClassName("accordion"); 
     var i; 

     for (i = 0; i < acc.length; i++) { 
      acc[i].onclick = function(){ 
       this.classList.toggle("active"); 
       this.nextElementSibling.classList.toggle("show"); 
      } 
     } 
    </script> 

<script> 
    function myMap() { 
     var mapCanvas = document.getElementById("map"); 
     var myCenter = new google.maps.LatLng(51.508742,-0.120850); 
     var mapOptions = {center: myCenter, zoom: 10}; 
     var map = new google.maps.Map(mapCanvas,mapOptions); 
     var marker = new google.maps.Marker({ 
      position: myCenter, 
      icon: "poi.png" 
     }); 
     marker.setMap(map); 
    } 
</script> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB37us778WYnwNjHftUm3oL2oduV_WOt_E&callback=myMap"></script> 




</div> 
</body> 
</html> 
+0

не отображает или не отображает серое пространство? – scaisEdge

+0

Он просто отображает серое пространство с значком маркера и не видит спутник с карты. – Toby

+0

это означает, что вы не видите зрителя при запуске, вы должны вызывать функцию для карты, когда вы нажимаете вкладку. Поэтому карты создаются, когда вкладка видна. – scaisEdge

ответ

0

Обычно карты требуют, чтобы их емкость будет позиция: относительная

Вы можете попробовать добавить позицию: по отношению к классу панели?

Если это не работает, убедитесь, что ваш ключ приложения Google Maps установлен с YOURKEY на любой ваш ключ.

<script src="https://maps.googleapis.com/maps/api/js?key=**YOURKEY**&callback=myMap"></script> 
+0

Это действительно не помогло, должен ли я разместить весь мой код, чтобы дать вам лучшую идею? и да, я положил свой ключ в YOURKEY, потому что я не хочу, чтобы у людей был мой ключ api. – Toby

+0

Можете ли вы опубликовать сайт, или скрипка его не работает? – nixkuroi

0

Карты требуют, чтобы контейнер имел определенный размер и был видимым в момент его загрузки. Он должен знать, какой размер он должен поместиться в

+0

Ну, это не помогло, я изменил размер контейнера для панели, и карта все еще не появилась – Toby

Смежные вопросы