setOpacity для нескольких маркеров в то время

63
6

Я использую буклет для своего проекта, и я хочу использовать в нем маркер фильтра. Чтобы сделать это, я установил значение 0 для всех маркеров, а re setOpacity - 1 для моих целей. Я знаю, что рекламная листовка позволяет задавать уровень емкости для каждого рынка, но могу ли я установить все маркеры одновременно? Спасибо за вашу помощь!

спросил(а) 2021-01-25T17:01:45+03:00 5 месяцев назад
1
Решение
77

Существует много способов добиться этого

В рядовой

Создайте группу слоев и добавьте каждый маркер в эту группу:

var myGroup = L.layerGroup([mark1, mark2, ...]);

Вы можете добавить всю группу к карте.

Затем, когда вы хотите установить непрозрачность маркера на 0, выполните:

myGroup.eachLayer(function(layer) {
layer.setOpacity(0);
});

Пример немного jsfiddle:

https://jsfiddle.net/csblo/64phqLb7/4/

В чистом javascript

Храните все маркеры в массиве. Сначала создайте массив:

var allMarkers = [];

И когда вы создаете новый маркер, нажмите его в этом массиве:

var marker = L.marker(...);
allMarkers.push(marker);

Затем, когда вам нужно установить непрозрачность в 0:

allMarkers.forEach(function(marker) {
marker.setOpacity(0);
});

ответил(а) 2021-01-25T17:01:45+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема