Есть ли способ, как я могу добавить пользовательский контент в InfoWindow?

У меня включен слушатель click для маркеров я не создаю GoogleMaps (V3 API). Когда он нажимается, сначала я загружаю информационное окно с простым простым HTML-кодом с "загрузочным" gif.

Затем я вызываю метод, который захватывает контент через ajax и вызывает infowindow.setContent(data) с загруженным data, Но переход между анимированным GIF и новым загруженным контентом довольно уродливый. Есть ли способ, которым я могу сделать это fadeIn/fadeOut?

Вот код для функции, которая загружает контент:

function load_infowindow_content(infowindow, user_id){
    $.ajax({
        url: site_root +'usuario/map_infowindow/' + user_id,
        success: function(data) {
            infowindow.setContent( data );
        }
    });
}

Огляделся и ничего не нашел. Заранее спасибо.

1 ответ

Вы можете добавить свои данные в контейнер div с указанным идентификатором, а затем позволить им исчезнуть с помощью jQuery's .fadeIn() метод. Поскольку объект ранее не был невидимым, вам, возможно, придется сначала спрятать его, а затем позволить jQuery сделать переход из контейнера невидимым в полностью видимый, например так:

$("#mapContentContainer").hide().fadeIn("slow");

РЕДАКТИРОВАТЬ

Более конкретный способ GoogleMaps был описан в Google Maps API V3 InfoBox с использованием jQuery fadeIn и fadeOut ( intheblue25):

"На самом деле в инфобоксе можно исчезнуть, вы должны переопределить функцию рисования в файле infobox.js следующим образом:"

var oldDraw = ib.draw;
ib.draw = function() {
    oldDraw.apply(this);
    jQuery(ib.div_).hide();
    jQuery(ib.div_).fadeIn('slow'); 
}
Другие вопросы по тегам