В новой листовке 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.
Спасибо. Но тем временем он пропускает и 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;
}
У меня это работает.
Самый полезный комментарий
Если вы уже стилизуете всплывающие окна, просто добавьте этот фрагмент CSS:
Просто добавьте класс CSS к тем всплывающим окнам, для которых вы хотите отключить анимацию затухания, и используйте тот же бит CSS :-)
Я не думаю, что это очень важная функция, особенно когда ее можно обойти с помощью небольшого дополнительного CSS.