我正在尝试将谷歌地图自动完成输入添加到我的离子应用程序中。除了当我滚动时,它工作得很好。如图所示:
所以我尝试了不同的方法,例如更改 .pac-container 的位置,但这并不能解决问题。 当我检查页面时,结果容器似乎在页面末尾加载,因此要使块粘在输入栏上并不容易。
我已经到处寻找但没有找到合适的解决方案?有人知道该怎么做吗? (实际上只是一个简单的代码,如下所示:
function initialize() {
var options = {componentRestrictions: {country: 'uk'}, types: ['geocode']}
new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),
options
);
}
initialize();
谢谢
我也有同样的问题。我的解决方案是:
$('#inputContainer').scroll(function(){
//Set new top to autocomplete dropdown
newTop = $('#autocompleteInput').offset().top + $('#autocompleteInput').outerHeight();
$('.pac-container').css('top', newTop + 'px');
});
这会在容器滚动时更新下拉位置。
当我在可滚动模式内的表单上实现自动完成时,我刚刚遇到了同样的问题。如果您只有一个自动完成对象,那么解决方案相对简单。
然后您需要选择 .pac-container 并将其附加到父级。
$("#autocomplete").parent()
.css({position: "relative"})
.append(".pac-container");
最后将 .pac-container 的左侧和顶部位置设置为元素下方。这需要在带有 !important 声明的样式表中完成,以确保它覆盖由 Google 代码设置的内联样式。
// these values will need to be calculated based on your layout
.pac-container {
top: 40px !important;
left: 0px !important;
}
如果单个页面上有多个自动完成对象,这显然不起作用。幸运的是,我找到了一种处理这种情况的方法,并最近将其发布在一个 jQuery 插件中,旨在使自动完成地址表单变得轻而易举。
我得到了解决方案检查示例滚动时没有位置错误问题
function initAutocomplete() {
//....codes...
//....add this code just before close function...
setTimeout(function(){
$(".pac-container").prependTo("#mapMoveHere");
}, 300);
}
就我而言,我必须将 css 设置为
html,body{overflow-x:visible;}
才能使 pac-container 固定到输入字段。
由于我的输入字段位于“ion-content”内,因此我实现了 Nicolas Pennesi 用离子含量法回答:
onScroll($event) {
// his code here
}