Как создать точки на карте и связанное с ними меню?

Как правильно создать кнопки для выдвижного меню цветов? При клике на определенный цвет, как сделать так, чтобы товар красился в выбранный цвет? Пытался использовать position absolute, но при уменьшении экрана расположение меняется и выдвижное меню перестает работать. Нужна помощь!
Изображение к вопросу
  • 2 ноября 2023 г. 23:19
Ответы на вопрос 1
Для создания точек на карте и связанного с ними меню вы можете использовать JavaScript и библиотеку для работы с картами, такую как Google Maps API или Yandex Maps API. Вам потребуется определить координаты каждой точки на карте и связать их с соответствующими элементами меню.

Вот пример с использованием Google Maps API:

1. Создайте блок карты на странице:

```html
<div id="map"></div>
```

2. Инициализируйте карту и добавьте на нее точки:

```javascript
function initMap() {
  // Определите координаты точек
  var point1 = {lat: 51.5074, lng: -0.1278};
  var point2 = {lat: 52.5200, lng: 13.4050};

  // Инициализируйте карту
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 52.5200, lng: 13.4050},
    zoom: 10
  });

  // Создайте маркеры для точек
  var marker1 = new google.maps.Marker({
    position: point1,
    map: map,
    title: 'London'
  });

  var marker2 = new google.maps.Marker({
    position: point2,
    map: map,
    title: 'Berlin'
  });

  // Привяжите события клика на маркеры к функции открытия меню
  marker1.addListener('click', function() {
    openMenu('menu1');
  });

  marker2.addListener('click', function() {
    openMenu('menu2');
  });
}

// Загрузите Google Maps API и инициализируйте карту при успешной загрузке
function loadMapScript() {
  var script = document.createElement('script');
  script.src = 'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap';
  document.body.appendChild(script);
}

// Вызовите функцию загрузки скрипта карты при загрузке страницы
window.onload = loadMapScript;
```

3. Создайте меню, привязанное к каждой точке:

```html
<div id="menu1">Меню для точки 1</div>
<div id="menu2">Меню для точки 2</div>
```

4. Создайте функцию открытия меню и свяжите ее с соответствующими точками:

```javascript
function openMenu(menuId) {
  // Закройте все меню
  var menus = document.querySelectorAll('.menu');
  for (var i = 0; i < menus.length; i++) {
    menus[i].style.display = 'none';
  }

  // Откройте выбранное меню
  var menu = document.getElementById(menuId);
  menu.style.display = 'block';
}
```

Что касается создания кнопок для выдвижного меню цветов, вы можете использовать HTML и CSS для создания внешнего вида кнопок, а затем добавить обработчики событий на них при помощи JavaScript.

Вот пример создания кнопок и изменения цвета товара при клике на них:

```html
<div id="color-buttons">
  <button id="red-button">Red</button>
  <button id="blue-button">Blue</button>
  <button id="green-button">Green</button>
</div>

<div id="product" style="width: 100px; height: 100px; background-color: gray;"></div>
```

```javascript
// Добавьте обработчики событий на кнопки
document.getElementById('red-button').addEventListener('click', function() {
  changeColor('red');
});

document.getElementById('blue-button').addEventListener('click', function() {
  changeColor('blue');
});

document.getElementById('green-button').addEventListener('click', function() {
  changeColor('green');
});

// Измените цвет товара
function changeColor(color) {
  var product = document.getElementById('product');
  product.style.backgroundColor = color;
}
```

Стилизуйте кнопки и товар при помощи CSS для достижения
Похожие вопросы