OpenLayers: манипуляции с кнопками контрола PanZoom
Добавлено: 04 фев 2011, 21:23
Рассмотрим пример сокрытия кнопки zoomWorld контрола PanZoom.
Контрол PanZoom по умолчанию добавляется на карту, если при ее создании не указано иное. Доступ к контролу можно получить так:
У контрола есть свойство buttons, содержащее массив div-ов его кнопок. Изучив исходники (файл Control/PanZoom.js), определяем, что нужная нам кнопка имеет индекс 5, получаем ее: Чтобы скрыть эту кнопку просто изменим свойство visibility у этого div-а: Можно и совсем удалить кнопку: Однако на месте убранной кнопки остается пустота, двинем на ее место находящуюся под ней кнопку: Может есть какие-нибудь более красивые решения?
Контрол PanZoom по умолчанию добавляется на карту, если при ее создании не указано иное. Доступ к контролу можно получить так:
Код: Выделить всё
map.getControlsByClass('OpenLayers.Control.PanZoom')[0]
Код: Выделить всё
map.getControlsByClass('OpenLayers.Control.PanZoom')[0].buttons[5]
Код: Выделить всё
map.getControlsByClass('OpenLayers.Control.PanZoom')[0].buttons[5].style.visibility = 'hidden'
Код: Выделить всё
map.getControlsByClass('OpenLayers.Control.PanZoom')[0]._removeButton(map.getControlsByClass('OpenLayers.Control.PanZoom')[0].buttons[5]);
Код: Выделить всё
map.getControlsByClass('OpenLayers.Control.PanZoom')[0].buttons[6].style.top = 82;