Задать карту как фон на сайте

Всем привет. Хочу задать на свой сайт карту как фон. Но она постоянно перекрывает другие блоки.

    <!-- Карта -->
<div id="mapstore"></div>

<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        const map = L.map("mapstore", {
            center: [29.7604, -95.3698],
            zoom: 10,
            scrollWheelZoom: false, // Отключаем зум колесиком по умолчанию
            dragging: false // Отключаем перемещение по умолчанию
        });
    
        L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
            maxZoom: 19,
            attribution: '&copy; OpenStreetMap contributors',
        }).addTo(map);
    
        const locations = [
            <?php for ($i = 1; $i <= 3; $i++): 
                $lat = get_field("location_{$i}_lat"); 
                $lng = get_field("location_{$i}_lng"); 
                $popup = get_field("location_{$i}_popup");
                if ($lat && $lng): 
            ?>
                { coords: [<?php echo esc_js($lat); ?>, <?php echo esc_js($lng); ?>], popup: "<?php echo esc_js($popup); ?>" },
            <?php endif; endfor; ?>
        ];
    
        locations.forEach((loc) => {
            L.marker(loc.coords)
                .addTo(map)
                .bindPopup(loc.popup);
        });
    
        // Включение интерактивности карты при клике
        document.getElementById("mapstore").addEventListener("click", function () {
            map.scrollWheelZoom.enable();
            map.dragging.enable();
        });
    
        // Отключение прокрутки при уходе мыши
        document.getElementById("mapstore").addEventListener("mouseleave", function () {
            map.scrollWheelZoom.disable();
            map.dragging.disable();
        });
    });
</script>

.store__main {
  padding: 108px 0;
  margin-top: -35px;
  position: relative;
    z-index: 10;
}

#mapstore {
    position: fixed; /* Фиксируем карту на фоне */
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh; /* Растягиваем карту на всю высоту экрана */
    z-index: -1;
}

Когда я задаю z-index карте 0 или больше, выглядит это вот так. введите сюда описание изображения Почему так? Как исправить?


Ответы (1 шт):

Автор решения: BlackStar1991

Сделайте вот так

#mapstore {
  min-height: 400px;
  background: red;
}

.wrapper_map {
  position: relative;
  height: auto;
}

.wrapper_map::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  background: rgba(0, 0, 0, .5);
}
<div class="wrapper_map">
  <div id="mapstore"></div>
</div>

Оберните вашу карту в отдельный элемент, а ему задайте z-index; PS Выносить карту в качестве фона - плохая идея с точки зрения SEO... ваш пользователь постоянно будет пытаться загрузить её даже если она ему и не надо. Лучше сделайте картинку, по нажатию на которую он бы получал карту - тогда это уменшит количество запросов.

→ Ссылка