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