2015-07-23 13 views
6

Test uygulamam için leafletjs kullanıyorum. Tarayıcı yeniden boyutlandırıldığında yakınlaştırma olayını tetiklemem gerekiyor.Tarayıcı yeniden boyutlandırıldığında bir uzaklaştırma olayı nasıl tetikleyebilirim?

L.TopoJSON = L.GeoJSON.extend({ 
    addData: function(jsonData) {  
     if (jsonData.type === "Topology") { 
      for (key in jsonData.objects) { 
       geojson = topojson.feature(jsonData, jsonData.objects[key]); 
       L.GeoJSON.prototype.addData.call(this, geojson); 
      } 
     } else { 
      L.GeoJSON.prototype.addData.call(this, jsonData); 
     } 
    } 
}); 

var tiles = L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"); 
var latlng = new L.LatLng(28.40, 84.15); 
mapOptions={ 
    dragging: false, 
    zoomControl: true, 
    scrollWheelZoom: false, 
    doubleClickZoom: false, 
    touchZoom: false, 
    attributionControl: false, 
    center: latlng, 
    zoom: 7, 
    layers: [tiles] 
}; 
console.log(mapOptions.zoom + 'first'); 

map = L.map('map-nepal', mapOptions); 
map.invalidateSize(); 

var topoLayer = new L.TopoJSON(); 
$.getJSON('js/map/districts.topo.json').done(addTopoData); 

ne yaptım mapOptions adlı küresel değişken oluşturmak geçerli: haritayı göstermek için eğer

(function(){ 
    $(window).on("resize", resize); 
    function resize() { 
     "use strict"; 

     if($(window).width() <= 765){ 
      mapOptions.zoom = 5; 
      console.log(mapOptions.zoom); 
     } 
    } 
})(); 

Bu kod:

İşte benim tarayıcı yeniden boyutlandırma kodudur. İlk olarak harita mapOptions.zoom = 7 ile başlatılır ve tarayıcı yeniden boyutlandırıldığında, mapOptions.zoom değerini 6 olarak değiştirdim. Değer değişti, ancak haritanın yakınlaştırmasında hiçbir etkisi yok.

cevap

2

Haritanın yakınlaştırma seviyesini değiştirmek isterseniz, haritanın yakınlaştırma seviyesini değiştirmek istediğinizde mapOptions.zoom yerine setZoom() işlevini deneyin. Dolayısıyla, sizin durumunuza göre, bu

Bunu kullanın.