javascript - Azure Maps Resize + Javascript 无法正常工作
问题描述
我已经构建了一个 Asp.net MVC 视图,其中有来自 Azure 地图的地图。我还有一个侧边栏,我可以将它折叠起来变小。
折叠栏的代码如下(并且包含在 _layout 文件中):
function collapse2() {
$('#sidebar').toggleClass('active');
$('#content').toggleClass('active');
}
window.onload = function () {
$("#sidebarCollapse").on('click', collapse2);
}
在视图中,我添加了以下 javascript。
function resize() {
map.map.resize();
}
$(document).ready(function () {
GetMap();
$(document).click('#resizea', resize);
$(document).click('#sidebarCollapse', resize);
});
当我按下 ID 为sidebarCollapse时,侧边栏会折叠,但地图不会调整大小(它不会拉伸 100%)。但是,如果我在折叠后单击带有 id resizea的链接标签,则地图的大小会调整为正确的大小。
谁能带领我朝着正确的方向前进?
提前感谢!
解决方案
正如我在评论中提到的,我怀疑 div 尚未调整大小。当 DOM 元素调整大小而不是窗口时,HTML 不提供任何事件。要知道某些东西是否调整大小,您必须对其进行监控,这对您自己来说是一件痛苦的事情。由于您使用的是 jquery,您可以使用调整大小功能:https ://api.jquery.com/resize/它适用于 div。
如果这不起作用。听起来问题出在您按下侧边栏折叠按钮时。我假设这个按钮也会折叠侧边栏,可能有一个单独的点击事件。尝试将它们组合在一起,并在调用折叠侧边栏的代码后调用 resize 函数。如果你有一个关于折叠的动画,这可能不起作用,在这种情况下,用 setTimeout 包裹 resize 函数并使用比动画稍长的时间跨度。
推荐阅读
- cordova - 科尔多瓦应用程序在浏览器中运行正常,但在设备中运行不正常
- php - 如何在 PHP 中从具有相同 ID 的数据库中获取多个结果(行)?
- javascript - Webpack 无法识别 jsx 语法
- git - 如何使用`git grep --not`
- function - 搜索项目的功能
- python - 如何在python中引用子模块
- node.js - 如何让 prod 和 dev Firebase 项目具有相同的 Auth 配置?
- javascript - 从动态数据列表中选择文本和值
- javascript - 如何根据增量和减量按钮的输入显示多次输入的卡片?
- java - 以递归关系解决 StackOverflow 异常