Google Maps Embed с вкладками Dynamic Drive (НЕ вкладки jquery-ui)
Потратив целый день на чтение этой распространенной проблемы, люди сталкиваются с программой встраивания карт Google, связанной с динамическими вкладками, когда главная страница не показывает карту правильно при загрузке страницы из. Карта не центрирована. Кто-нибудь есть какие-либо предложения о том, как решить эту проблему, я в значительной степени готов попробовать что-нибудь.
В настоящее время я использую вкладки динамического содержимого. Мне интересно, есть ли способ исправить эту проблему в моей ситуации.
Просто пример с сайта.
<ul id="countrytabs" class="shadetabs">
<li><a href="#" rel="country1" class="selected">Tab 1</a></li>
<li><a href="#" rel="country2">Contacts</a></li>
<li><a href="#" rel="country3">Tab 3</a></li>
<li><a href="#" rel="country4">Tab 4</a></li>
<li><a href="http://www.dynamicdrive.com">Dynamic Drive</a></li>
</ul>
<div id="country1" class="tabcontent">
Tab content 1 here<br />Tab content 1 here<br />
</div>
<div id="country2" class="tabcontent">
Tab content 1 here<br />Google Maps<br />
</div>
Google Maps Embd
<iframe width="400" height="425" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?ie=UTF8&q=Ace+Liquors&fb=1&gl=us&hq=ace+liquor+glendale&cid=17378010379165161653&t=m&ll=34.162084,-118.301747&spn=0.007546,0.008562&z=16&iwloc=A&output=embed"></iframe>
Вкладка "Персональный код для контактов" выглядит так:
<li>
<a id="contact" rel="hours" href="#">
<span>Contact</span>
</li>
из того, что я понимаю, мне нужен кусок кода jquery, который будет загружать карты при нажатии Контакты. У кого-нибудь есть предложения по загрузке карт только тогда, когда это событие произойдет?
2 ответа
Вопрос, на который вы ссылаетесь из Stackru, кажется, не соответствует вашим потребностям, так как здесь используется Javascript API карт Google.
Я предполагаю, что при использовании ваших вкладок Javascript не смог вычислить начальную ширину и высоту iframe, чтобы отцентрировать его.
Я не мог использовать вкладки динамического содержимого, так как ссылки на вкладки якоря не работают на демонстрационной странице. Хотя мне удалось использовать встроенные карты Google в JsFiddle с чистыми вкладками CSS ( http://jsfiddle.net/bKaxg/342/)
Взгляните на предоставленные стили, я установил iframe как блок
.content iframe{
margin:0 auto;
display:block;
}
Также вы можете использовать вкладки Twitter Bootstrap ( http://jsfiddle.net/K9LpL/248/)
Или даже простой и удобный пользовательский сценарий ( http://jsfiddle.net/e3Lhc/29/)
РЕДАКТИРОВАТЬ: мне удалось использовать предоставленный сценарий, используйте первую строку моего CSS для центрирования вашей карты http://jsfiddle.net/DqZT8/3/
Мне кажется, вы пытаетесь положиться на теги
для макета? Возможно, стилизация iframe с помощью CSS поможет. Как правило, я помещаю содержимое, подобное этому iFrame, во второй div (обычно с классом-оберткой), а затем размещаю обертку.
Я хотел бы предложить что-то вроде этого:
<div id="country2" class="tabcontent">
<p>Tab content 1 here</p>
<div class = "mapWrapper">
<iframe width="400" height="425" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?ie=UTF8&q=Ace+Liquors&fb=1&gl=us&hq=ace+liquor+glendale&cid=17378010379165161653&t=m&ll=34.162084,-118.301747&spn=0.007546,0.008562&z=16&iwloc=A&output=embed"></iframe>
</div>
</div>
Тогда в вашем CSS
.tabcontent
{
width: 100%; /* This must be set to something, or you won't be able to have
the inner div centered correctly*/
}
.mapWrapper
{
width:auto; margin: 0 auto;
}