【发布时间】:2018-06-23 16:13:21
【问题描述】:
当用户点击地图上的标记时出现一个弹出窗口(我使用的是 Google Maps JavaScript API)。
HTML:
<div id="map"></div>
<div id="popup" class="popup-bubble-content">
... content inside
</div>
CSS:
.popup-bubble-content {
z-index: 1000000;
position: absolute;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
JavaScript:
var popupList = document.getElementById('popup');
... some processing code
popup = new Popup(latLng, popupList);
popup.setMap(map);
在移动设备上,您可以点击弹出窗口中的内容,但不能触摸滚动。在带有触控板或鼠标的 PC 上滚动效果很好,但触摸滚动不起作用。
我试过了……
- 在 div 上设置高度
- 将 z-index 设置为较大的数字
- 将overflow-y设置为滚动/自动;
- 添加 -webkit-overflow-scrolling: touch;
- 设置位置:固定
这些都不适合我。
这是弹出窗口的picture。滚动条可见,但触摸滚动不起作用。
编辑:
我有了一个小小的发现。如果我在创建后附加弹出窗口说body 元素,它可以正常工作,但它没有正确定位。触摸滚动问题是由popup.setMap(map) 引起的,之后弹出框变成了一个MVCObject,并成为Google Maps API 创建的某个随机元素的子项。
我很确定这是一个错误,或者至少是一个意外功能。我正在提交错误报告。
【问题讨论】:
-
您没有提供足够的 Javascript 代码。我刚刚看了官方的例子,它工作正常。您能否将整个地图和弹出初始化功能添加到问题中?
-
能否请您发布代码或小提琴网址。
-
两指滚动告诉地图滚动而不是页面滚动。
标签: html css google-maps-api-3