@gogadesign

Как реализовать отложенную загрузку яндекс карты?

Здравствуйте! Прошу помощи!

Прописал код для отложенной загрузки карты скролла до секции id="quality"

var quality = $('#quality');
var qualityTop = quality.offset().top;
$(window).bind('scroll', function () {
	var windowTop = $(this).scrollTop();
	if (windowTop > qualityTop) {
		$('#map2').html('<script src="https://api-maps.yandex.ru/2.1/?apikey=**988ed1-d609-4a0a-9a42-7ea94e21b247&lang=ru_RU" type="text/javascript"></script>')

	$(window).unbind('scroll')
	}
});


Для карты прописал доп. обработчик карты icon_customImage.js, для реализации меток:

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map("map2", {
        center:[59.94237336910086,30.172376916992068],
        zoom: 10,
        controls: ["zoomControl"]
    }); 
            
    var myGeoObjects = [];
    
    // Метка 1
    myGeoObjects[0] = new ymaps.Placemark([59.862096, 30.211591],{
                    balloonContentBody: '',
                    },{
                    iconLayout: 'default#image',
                    iconImageHref: '../img/png/location.png', 
                    iconImageSize: [45, 55],
                    iconImageOffset: [-30, -40]
    });
         
    var clusterer = new ymaps.Clusterer({
        clusterDisableClickZoom: false,
        clusterOpenBalloonOnClick: false,
    });
    
    clusterer.add(myGeoObjects);
    myMap.geoObjects.add(clusterer);
    myMap.behaviors.disable('scrollZoom');

}


Теперь в консоле выдается ошибка: Uncaught ReferenceError: ymaps is not defined at icon_customImage.js:1

Подробнее об ошибке:
ymaps.ready(init); - Uncaught ReferenceError: ymaps is not defined
  • Вопрос задан
  • 2846 просмотров
Решения вопроса 1
@alexprowars
https://tech.yandex.ru/maps/jsapi/doc/2.1/dg/conce...

Используйте параметр onload, чтобы вызвать вашу функцию, когда скрипты загрузятся на странице
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Посмотрите lazysizes.
Он может (вроде как) обрабатывать автоматически iframe.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы