2015-07-23 24 views
6

Używam do testowania aplikacji leafletjs. Muszę wystrzelić zdarzenie zoomout przy zmianie rozmiaru przeglądarki.Jak mogę zwolnić zdarzenie zmniejszania rozmiaru przeglądarki?

Oto moja przeglądarka kod resize:

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

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

Ten kod jeśli pokazać mapę:

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); 

Co mam zrobić, to stworzyć globalną zmienną o nazwie mapOptions. Najpierw inicjowana jest mapa z mapOptions.zoom = 7, a po zmianie rozmiaru przeglądarki zmieniłem wartość mapOptions.zoom na 6. Wartość zmieniła się, ale nie ma wpływu na powiększenie mapy.

Odpowiedz

2

Aby zmienić poziom powiększenia mapy, należy wypróbować funkcję setZoom() zamiast mapOptions.zoom, aby zmienić poziom powiększenia mapy. Tak więc, w twoim przypadku użyj tej

Mam nadzieję, że zadziała.