Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据设备宽度调整地图大小?_Javascript_Html_Css_Mobile_Mapbox - Fatal编程技术网

Javascript 如何根据设备宽度调整地图大小?

Javascript 如何根据设备宽度调整地图大小?,javascript,html,css,mobile,mapbox,Javascript,Html,Css,Mobile,Mapbox,我为即将到来的足球世界杯创建了一个小网站。该网站包含一张地图(由mapbox提供),这是我网站中最重要的元素,因此它是网站的背景。宽度设置为100%。现在我想根据设备(平板电脑、手机)调整地图的大小,这样地图和整个网站在每个设备上看起来都很相似 以下是我的javascript中的代码片段: var map = L.mapbox.map('map', 'hashtagwinti.i72di96c', { zoomControl: false, maxZoom: 10, minZoom: 2,

我为即将到来的足球世界杯创建了一个小网站。该网站包含一张地图(由mapbox提供),这是我网站中最重要的元素,因此它是网站的背景。宽度设置为100%。现在我想根据设备(平板电脑、手机)调整地图的大小,这样地图和整个网站在每个设备上看起来都很相似

以下是我的javascript中的代码片段:

var map = L.mapbox.map('map', 'hashtagwinti.i72di96c', { 
zoomControl: false, 
maxZoom: 10, 
minZoom: 2, 
} )
.setView([-8, -50], 4); 
L.control.scale({position: 'bottomleft', metric: true, imperial:false}).addTo(map);
map.featureLayer.setGeoJSON(brazil).addTo(map);
这是我身体的css和地图:

body { 
margin:0; 
padding:0; 
width:auto% !important;
height: auto% !important;
}

#map { 
position:absolute; 
top:0; 
bottom:0;
width:100%;
现在我希望每个设备上的地图视图都是相同的。目前,如果你从iPhone上浏览网站,缩放级别不会改变(地图视图不一样)

有什么想法吗


(如果已经在mapbox API上找到了解决方案,但我没有找到解决方案)

您可以通过媒体查询类型调用告诉mapbox要调整的屏幕大小,并通过if/else语句对该大小执行不同的操作

例如,要为小于420px的手机屏幕设置缩放级别,如下所示:

var mq = window.matchMedia( "(min-width: 420px)" );

if (mq.matches){
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 4); //set map zoom level for desktop size
} else {
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 3); //set map zoom level for mobile size
};

您还可以设置其他内容,如地图中心、标记等。

您可以通过媒体查询类型调用告诉Mapbox要调整的屏幕大小,并通过if/else语句对该大小执行不同的操作

例如,要为小于420px的手机屏幕设置缩放级别,如下所示:

var mq = window.matchMedia( "(min-width: 420px)" );

if (mq.matches){
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 4); //set map zoom level for desktop size
} else {
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 3); //set map zoom level for mobile size
};

您还可以设置其他内容,如地图中心、标记等。

您可以通过媒体查询类型调用告诉Mapbox要调整的屏幕大小,并通过if/else语句对该大小执行不同的操作

例如,要为小于420px的手机屏幕设置缩放级别,如下所示:

var mq = window.matchMedia( "(min-width: 420px)" );

if (mq.matches){
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 4); //set map zoom level for desktop size
} else {
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 3); //set map zoom level for mobile size
};

您还可以设置其他内容,如地图中心、标记等。

您可以通过媒体查询类型调用告诉Mapbox要调整的屏幕大小,并通过if/else语句对该大小执行不同的操作

例如,要为小于420px的手机屏幕设置缩放级别,如下所示:

var mq = window.matchMedia( "(min-width: 420px)" );

if (mq.matches){
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 4); //set map zoom level for desktop size
} else {
    var map = new L.mapbox.map('map', 'hashtagwinti.i72di96c').setView([-8, -50], 3); //set map zoom level for mobile size
};

您还可以设置其他内容,如地图中心、标记等。

我使用
map.invalidateSize()找到的根据浏览器窗口或父容器的大小调整贴图大小的最简单解决方案


以下是有关MapBox网站上invalidateSize的更多信息:

我使用
map.invalidateSize()找到了它根据浏览器窗口或父容器的大小调整贴图大小的最简单解决方案


以下是有关MapBox网站上invalidateSize的更多信息:

我使用
map.invalidateSize()找到了它根据浏览器窗口或父容器的大小调整贴图大小的最简单解决方案


以下是有关MapBox网站上invalidateSize的更多信息:

我使用
map.invalidateSize()找到了它根据浏览器窗口或父容器的大小调整贴图大小的最简单解决方案

以下是有关MapBox网站上invalidateSize的更多信息: