Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

карты map.yandex.view не грузятся в скрытом div'е

00 голосов
5
Здравствуйте, уважаемые коллеги.
На странице есть табы, в одном из них bitrix:map.yandex.view, работают табы на jquery,
(тянется отсюда: http://code.jquery.com/jquery-latest.min.js).

Изначально, тот таб (слой), в котором находится карта не виден (display: none),
когда таб становится видимым сами карты не появляются, видно только серое поле с элементами управления.
Но! Стоит, например, включить/выключить firebug, то карты появляются.
По ходу есть конфликт библиотек, но это только догадки..

Люди добрые, помогите кто чем может ))
спросил 22 Ноя, 13 от Feanor007 (420 баллов)

5 Ответы

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


Код
onclick="YMaps.load(init)"
ответил 14 Янв, 14 от volk (180 баллов)
00 голосов
beginner,  возможно именно мой код работать не будет (я взял его из одной из своих реализаций, причем она не на Битрикс, а просто API ЯндексКарт).

Но я привел это пример, чтобы вы знали в какую сторону копать, вам нужно просто инициализировать загрузку карту в тот момент, когда нужный таб становится видимым.
ответил 02 Май, 14 от volk (180 баллов)
00 голосов
Благодарю, Алексей!
Буду пробовать..
ответил 27 Авг, 14 от Feanor007 (420 баллов)
00 голосов
если на момент инициализации карты контейнер будет иметь свойство {display: none}, то от серого фона никуда не деться. используйте {visibility:hidden} или же скрывайте контейнер с картой после инициализации с помощью js.
ответил 02 Янв, 15 от Exet (380 баллов)
00 голосов
Спасибо, Игорь,
но {visibility:hidden} к сожалению не предоставляется возможным, страница уже сверстана, стили прописаны..

На http://api.yandex.ru/maps/articles/tasks/map.xml есть рецепт,
согласно ему необходимо использовать метод redraw() объекта Map, для перерисовки карты.
Прикрутил его к нужной ссылке прямо в шаблоне вот так:

<script type="text/javascript">
     jQuery(document).ready(function(){
jQuery('.tab_nav a[tab=#tab_contacts]').click(function(){
Map.redraw();
});
     });
</script>

но код работать не хочет.
Пытался всячески:
YMaps.redraw();
YMaps.Map.redraw();
Map.redraw();
YMaps.map.redraw();
map.redraw();
redraw();
но firebug все время ругается неопределенные функции..

Как же правильно вызвать метод?
ответил 21 Апр, 15 от Feanor007 (420 баллов)

Похожие вопросы

0 голосов
0 ответов
0 голосов
6 ответов
спросил 19 Окт, 13 от Brouk (180 баллов)
0 голосов
3 ответов
спросил 23 Сен, 13 от EWARw (480 баллов)
0 голосов
0 ответов
спросил 15 Июль, 13 от NaGANo228 (120 баллов)