Карта-листовка не отображается должным образом на мобильном устройстве.Jquery

Программирование на jquery
Ответить
Гость
 Карта-листовка не отображается должным образом на мобильном устройстве.

Сообщение Гость »


У меня есть страница с фильтрами сверху и переключателем между представлением плитки или представлением карты.

Каждый раз, когда меняется фильтр, я выполняю поиск с помощью AJAX и меняю представление с помощью Mustache. На мобильных устройствах по умолчанию используется мозаичный вид со значком в правом нижнем углу для переключения карты. Когда мой вид находится в режиме плитки, я меняю фильтр (чтобы отображались триггеры поиска и отфильтрованные плитки), затем я переключаюсь на вид карты, и он максимально уменьшается, и только нижний левый угол не становится серым. Выглядит это так:


Изображение


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

Это HTML-держатель карты:

jQuery:

$(document).ready(function(){ 'используйте строгий'; curr_lang = $('#curr_lang').val(); инициализироватьЭлементы(); //Читаем параметры запроса и настраиваем все в соответствии с ними setupConfig (radiusSlider); //Настраиваем прослушиватели для поля поиска произвольного ввода текста setupFreetextField(); НастройкаПолеИнтереста(); setupLocationField(); setupDaterangeField(); setupMorefiltersField(); }); функция инициализироватьЭлементы () { $(окно).scroll(функция() { вар волонтер = $('#map_canvas'); вар смещение = волонтер.смещение(); верх = смещение.топ; состояние = $('.footer').offset().top; var дно = $('#map_canvas').offset().top; if ($(window).scrollTop() + Volunter.height() + 134 > состояние) { волонтер.removeClass('исправлено'); волонтер.addClass('дно'); } else if ($(this).scrollTop() + 58 > дно) { волонтер.addClass('исправлено'); волонтер.removeClass('дно'); } еще { волонтер.removeClass('исправлено'); волонтер.removeClass('дно'); } //Включаем значок переключения меню поиска if ($(window).width() filter.height()) { searchToggle.addClass('показать'); } еще { searchToggle.removeClass('показать'); фильтры.removeClass('мобильные-фильтры'); } } }); if ($(window).width() 1227) { vacancyGrid.removeClass('hide-mobile'); mapGrid.removeClass('show-mobile'); $('#mapview').removeClass('hide-mobile'); $('#gridview').removeClass('show-mobile'); $(document.body).removeClass('карта'); }иначе если($(окно).ширина() 0) { for (индекс = 0; индекс 13) { a.layer.spiderify(); } }); маркер.bindPopup(информация); mcg.addLayer(маркер); } //console.log(boundsarray); map.fitBounds(boundarray); Map.addLayer(MCG); }
РЕДАКТИРОВАТЬ: я добавил полный код после попытки добавить map.invalidateSize(); в функцию переключения карты. Но результат тот же. Функция setupMap() вызывается в конце моего метода успеха AJAX для поиска. (Параметр вакансий является результатом моего метода AJAX и содержит информацию о плитках, а также широту/долготу вакансии)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»