Здається, це можливо лише в CSS. Нижче я переосмислюю (з !important
) лише три CSS-елементи та додаю один :before
псевдоелемент. Я по суті є першою вибудовування спливаючого вікна з верхніми , а не внизу , де 55px
тільки залежить від обраних маркерів, і особистим смаком.
Потім я переміщую "наконечник" спливаючого вікна аналогічно знизу до top:0px
і виявляю, що це не зроблено за допомогою "звичайного" трюку (тобто: спочатку розташуйте на межі міхура псевдоелемент розміром 0х0 з товстою прозорою рамкою, потім колір, який протилежна межа елемента, де ви хочете вказати; в нашому випадку нижня межа). Натомість, здається, він зроблений з прямокутника, оберненого звідкись зліва-вліво (можливо: тому що він змушує браузер використовувати GPU і, отже, прискорює все?), І я не розумію достатньо точки (вибачте за каламбур) ( моя порада в потрібному місці, але невидима); тому я просто видаляю коробку-тінь, яка зараз знаходиться в неправильному місці, і залишаю все так, як є --- будь-хто, хто розуміє "стару пораду", будь ласка, налаштуйте її.
Тож замість цього я роблю власну підказку за допомогою "звичайного" процесу (якщо ви не впевнені, замініть чотири кольори рамки нижче, а не 3х прозорих та 1х білих --- наприклад border-bottom-color: blue; border-left-color: green; border-top-color: yellow' border-right-color: red
).
#map {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: 0;
}
.leaflet-popup {top: 55px !important;}
/* Here I move the "tip" to the right location, but didn't succeed in making it visible. So I just remove the box-shadow and leave it: */
.leaflet-popup-tip-container {
top: 0px !important;
}
.leaflet-popup-tip {
box-shadow: none !important;
}
.leaflet-popup:before
{
content: "";
position: absolute;
border: 13px solid transparent;
border-bottom-color: white;
bottom: 0px;
margin-left: -13px;
}
Як це показує JSFiddle, якщо ви спробуєте обидва маркера, немає проблем із різними розмірами спливаючих вікон (різної ширини, різної висоти тексту).
Загалом, це здається надійним щодо оновлень у Leaflet, оскільки елементи, які я переосмислюємо, не можуть змінитись.