2016-07-07 3 views
2

Как переключить функцию увеличения колесика мыши?Включение и выключение MouseWheelZoom

Я знаю, что вы можете установить mousewheelzoom по умолчанию при создании карты:

interactions: ol.interaction.defaults({ 
     mouseWheelZoom: false 
    }), 

Но как я могу изменить его, как только карта создается т.е. когда пользователь нажимает на карту, я хочу запустить подпрограмму, которая переключает колесо мыши увеличить масштаб?

Я знаю, что это было сложно в Openlayers2 - надо было перебрать управление:

function PMA_Mapping_Enable_Mouse_Wheel_Zoom(map) { 
//Need to go through all controls - don't know why! 
controls = map.getControlsByClass('OpenLayers.Control.Navigation'); 
for (var i = 0; i < controls.length; ++i) 
    controls[i].enableZoomWheel();}; 

Не знаю, если это помогает, но думал, что я должен включить его.

Кто-нибудь знает, как достичь этого в openlayers 3?

ответ

2

Mouseweel - это не контроль, а взаимодействие. так, вы всегда можете использовать

interaction.setActive(true), interaction.setActive(false) для переключения взаимодействия.

Начните карту initialazation так:

......interactions: ol.interaction.defaults({ mouseWheelZoom: false }), .......

Затем, когда ваша карта готова создать взаимодействие MouseWheel как так:

var mouseWheelInt = new ol.interaction.MouseWheelZoom(); map.addInteraction(mouseWheelInt)

, а затем переключить его:

mouseWheelInt.setActive(!mouseWheelInt.getActive())

+0

Это намного лучше - теперь нет необходимости хранить переменную на стороне клиента. Переход от OL2 немного привыкает - это очень помогает. Большое спасибо. –

+0

рад помочь спариться! – pavlos

Смежные вопросы