2017-01-12 3 views
0

Я пытаюсь запустить мою карту OpenLayers 3, чтобы стать полноэкранным в коде, но мне не очень повезло.Как я могу запустить полноэкранное событие OpenLayers 3?

У меня есть кое-что вдоль линий:

var fullScreenControl = new ol.control.FullScreen() 

// Create map in between using fullScreenControl 

fullScreenControl.changed(); 

код ничего не дает, хотя. Я попробовал fullScreenControl.dispatchEvent ('change'); тоже без везения. Я предполагаю, что это не слишком сложно, но все остальные вопросы, похоже, вращаются вокруг обнаружения события, а не запускают его.

+0

Если вы не нашли решения для этого, подумайте о библиотеках, которые вызывают полноэкранное поведение для элементов HTML, например https://github.com/sindresorhus/screenfull.js, или просто прочитайте эту статью: https://www.sitepoint.com/use-html5-full-screen-api/ – Icarus

ответ

1

ol3 использует полноэкранный API «HTML5» для переключения карты в полноэкранном режиме. Я не уверен, что вы пытаетесь выполнить, но есть разные способы переключения полноэкранного режима.

Вот чистый метод JS, чтобы установить карту на весь экран:

function setMapToFullScreen(){ 
    //if your map element id is other than 'map' change it here 
     var elem = document.getElementById('map'); 
     if (elem.requestFullscreen) { 
      elem.requestFullscreen(); 
     } else if (elem.msRequestFullscreen) { 
      elem.msRequestFullscreen(); 
     } else if (elem.mozRequestFullScreen) { 
      elem.mozRequestFullScreen(); 
     } else if (elem.webkitRequestFullscreen) { 
      elem.webkitRequestFullscreen(); 
     } 
} 

Вот fiddle, чтобы увидеть его в действии.

Если вы планируете прикреплять полноэкранные функции в элементе DOM за пределами карты, вы всегда можете использовать опцию target во время полноэкранной инициализации. Если вы просто хотите сделать это программно, используйте функцию выше. Это зависит от того, чего вы хотите достичь.