“map.getBounds()”结果在传单.js集中输入表单后更改
The "map.getBounds()" result changed after focused input form in leaflet.js
我开发了一个基于Phonegap的地图Android应用程序,带有leafletjs和jQueryMobile。此应用程序有两个页面。第一页是地图视图,第二页是由一些输入表单组成的首选项。
当我在第二页集中输入表单(只是!)并转移到第一页时,由于某种原因,地图边界发生了变化。
例如。在改变之前。西南是明显的东北形式。
L.map.getBounds().toBBoxString(); // 135.42702913284302,34.68926290260606,135.42702913284302,34.68926290260606
在集中输入表单之后。西南与东北相同!
L.map.getBounds().toBBoxString(); // 135.42702913284302,34.68926290260606,135.4544949531555,34.70252981597828
还有其他人有同样的问题吗?我找不到为地图设置边界的方法。
以下是我假设发生的事情:
- 聚焦输入字段
- 输入字段上的样式以某种方式触发 Windows.resize 事件
- 传单地图大小无效
- 当您请求边界时,它会读取新大小(因为旧大小无效),该大小为零,因为地图是隐藏的 - 大概
这是因为getBounds
调用:
getPixelBounds: function () {
var topLeftPoint = this._getTopLeftPoint();
return new L.Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));
},
topLeftPoint
完好无损,但大小为 [0,0],得到 NE = SW。
可能的解决方案:
A. 在转换到第二页之前缓存边界B. 调查输入焦点触发窗口大小调整的原因
相关文章:
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 我如何集中输入'It’s从屏幕上滑进来
- 在输入未填充时将其集中
- 显示给定输入数字的数据集中字母表的所有可能组合
- 如何集中输入,并取消选择其中的文本
- 输入集中,但不可键入
- “map.getBounds()”结果在传单.js集中输入表单后更改
- 将下一个/上一个输入集中在达到最大长度或退格键上
- JQuery 查找集中输入的索引
- 将输入集中在模糊事件不起作用上
- 当输入集中在web应用程序上时显示键盘
- 如何在JavaScript中从字段集中读取输入字段
- AngularJS输入指令在模糊上应用和删除格式&集中
- 只有在没有输入集中的情况下,才将第一个输入集中在负载上
- 如何在不输入关键字的情况下将文本框集中在按键上
- Javascript/jQuery检测输入是否集中
- 如何使文本和宽度100%的分辨率和输入集中
- 清除它的值后保持输入集中
- Vue JS将下一个输入集中在回车上
- 为什么把输入集中在页面加载而不是内联