Leaflet: Разрешить пользователю НЕ иметь всплывающую анимацию fadeOut на closepopup (v1 beta2)

Созданный на 8 нояб. 2015  ·  4Комментарии  ·  Источник: Leaflet/Leaflet

В новой листовке v1 появляется анимация fadeOut при закрытии всплывающего окна. Это здорово, но:

Было бы здорово иметь возможность позволить пользователю выбирать, иметь или НЕ использовать этот fadeOut.
Объяснение: я запускаю некоторые функции map.on.popupopen, чтобы стилизовать открывающееся всплывающее окно в реальном времени (разные стили для разных мест на земле). И с включенным новым затуханием стили, которые я добавляю, уже видны во время fadeOut из всплывающего окна ЗАКРЫТИЯ (до открытия нового всплывающего окна). Что приводит к уродливому визуальному миксу :)

http://jsfiddle.net/Pe5xU/268/

Я думаю, было бы здорово позволить нам выбирать, иметь / не иметь fadeIn / fadeOut всплывающих окон независимо друг от друга, а не глобальный параметр fadeAnimation true / false.

Даже не говоря о "моей" маленькой проблеме, мне нравится видеть, как всплывающие окна исчезают без затухания, и, может быть, я не одинок ... :)

Самый полезный комментарий

Если вы уже стилизуете всплывающие окна, просто добавьте этот фрагмент CSS:

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

давайте выберем / не иметь fadeIn / fadeOut для всплывающих окон независимо друг от друга, а не глобальный параметр fadeAnimation true / false.

Просто добавьте класс CSS к тем всплывающим окнам, для которых вы хотите отключить анимацию затухания, и используйте тот же бит CSS :-)

Я не думаю, что это очень важная функция, особенно когда ее можно обойти с помощью небольшого дополнительного CSS.

Все 4 Комментарий

Если вы уже стилизуете всплывающие окна, просто добавьте этот фрагмент CSS:

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

давайте выберем / не иметь fadeIn / fadeOut для всплывающих окон независимо друг от друга, а не глобальный параметр fadeAnimation true / false.

Просто добавьте класс CSS к тем всплывающим окнам, для которых вы хотите отключить анимацию затухания, и используйте тот же бит CSS :-)

Я не думаю, что это очень важная функция, особенно когда ее можно обойти с помощью небольшого дополнительного CSS.

Спасибо. Но тем временем он пропускает и fadeIn ...

Но это не очень важно, вы правы.
Это можно сделать, вырезав несколько строк в исходном коде (я знаю, это плохо :).
При удалении всплывающего окна я пропускаю часть IF, чтобы избежать fadeOut:

 L.Popup = L.Layer.extend ({
 ...

 onRemove: function (map) {
 // если (map._fadeAnimated) {
 // L.DomUtil.setOpacity (this._container, 0);
 // this._removeTimeout = setTimeout (L.bind (L.DomUtil.remove, L.DomUtil, this._container), 200);
 //} еще {
 L.DomUtil.remove (this._container);
 //}
 map.fire ('всплывающее окно', {всплывающее окно: это});
 if (this._source) {
 this._source.fire ('popupclose', {popup: this}, истина);
 }
 },
 ...

 )}

@remilev Пожалуйста, не изменяйте уменьшенную версию исходного кода. Этого никто не может понять.

@IvanSanchez Спасибо!

.leaflet-fade-anim .leaflet-popup {
  transition: none;
}

У меня это работает.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги