Я создаю приложение, которое имеет боковую панель, которая открывается по умолчанию в настольных приложениях, и использую опцию padding ( пример приложения ), доступную в 4.9 ArcGIS JavaScript API, Iхотите сместить сторону экрана, пока открыта боковая панель.При изменении размера приложения я хочу удалить смещение свойства и каким-то образом обновить или перезагрузить исходный вид.Я смог заставить его работать, воссоздав вид, который вызывает странную вспышку на карте.Я сделал простой jsfiddle, показывающий что-то похожее на то, что я хочу сделать.https://jsfiddle.net/booshwa/t05ks1u4/. Когда пользователь щелкает по кнопке недавно, новый экран строится с отступами, если боковая панель открыта, или устанавливает отступ на 0, если боковая панель скрыта.Ниже приведен код JavaScript в jsfiddle.
require([
"esri/Map",
"esri/views/MapView"
], function(
Map,
MapView
) {
// Create the Map
var map = new Map({
basemap: "topo"
});
// Create the view set the view padding to be 320 px from the right
var view = new MapView({
container: "viewDiv",
map: map,
center: [-74.045459, 40.690083], // Liberty Island, NY, USA
zoom: 16,
padding: {
right: 320 // Same value as the #sidebar width in CSS
}
});
var sidebar_open = true;
// Show / Hide the sidebar
$("#toggle_sidebar").click(function() {
if (sidebar_open) {
$("#sidebar").css({display: "none"});
} else {
$("#sidebar").css({display: "block"});
}
sidebar_open = !sidebar_open;
});
// Builds a new view based on if the sidebar is open or closed
$("#toggle_view").click(function() {
var padding = 0;
if (sidebar_open) {
padding = 320;
}
// Recreate the view to make the padding reset
// => Is this the only way to update a view?
view = new MapView({
container: "viewDiv",
map: map,
center: [-74.045459, 40.690083], // Liberty Island, NY, USA
zoom: 16,
padding: {
right: padding // Same value as the #sidebar width in CSS
}
});
});
});