Here Maps - 视口中的信息气泡重新定位
Here Maps - infobubble reposition in viewport
我正在将应用程序从 Here Maps Javascript API v2 升级到 v3。
在 v2 中,信息气泡在视口中重新定位,因此它们留在屏幕上(例如,如果它位于视口的左侧,则信息气泡重新定位到右侧,因此它不会出现在屏幕外)
Here Maps JS v3 中不再存在此行为API。信息气泡始终保持不变。我找不到这方面的任何设置 - 是否可以恢复这种旧行为?
干杯
我找不到任何解决方案,所以我自己编写了代码来实现它。
以防万一它可以帮助任何人...
$(document).ready(function () {
setInterval(function () {
if ($('.H_ib_body').is(':visible')) {
var top = parseInt($('.H_ib_top').css('transform').split(',')[5]);
var left = parseInt($('.H_ib_top').css('transform').split(',')[4]);
var height = $('.H_ib_body').height();
if ($('.H_ib_body').attr('data-isBottom') != '1') { // on top
if (height - top > 0) {
{
$('.H_ib_body').css('bottom', 'auto').css('top', '0em').attr('data-isBottom', '1');
$('.H_ib_tail').css('transform', 'rotate(180deg)');
}
}
} else { // on bottom
var totalHeight = $('#map canvas').height();
if ((top + height) > totalHeight) {
$('.H_ib_body').css('bottom', '.5em').css('top', 'auto').attr('data-isBottom', '0');
$('.H_ib_tail').css('transform', '');
}
}
if ($('.H_ib_body').attr('data-isRight') != '1') { // on left
if (left - $('.H_ib_body').width() < -30) {
$('.H_ib_body').css('right', 'auto').css('left', '-20px').attr('data-isRight', '1');
}
} else { // on right
var totalWidth = $('#map canvas').width();
if (left + $('.H_ib_body').width() > totalWidth) {
$('.H_ib_body').css('right', '0px').css('left', 'auto').attr('data-isRight', '0');
}
}
}
}, 20);
});
我正在将应用程序从 Here Maps Javascript API v2 升级到 v3。
在 v2 中,信息气泡在视口中重新定位,因此它们留在屏幕上(例如,如果它位于视口的左侧,则信息气泡重新定位到右侧,因此它不会出现在屏幕外)
Here Maps JS v3 中不再存在此行为API。信息气泡始终保持不变。我找不到这方面的任何设置 - 是否可以恢复这种旧行为?
干杯
我找不到任何解决方案,所以我自己编写了代码来实现它。 以防万一它可以帮助任何人...
$(document).ready(function () {
setInterval(function () {
if ($('.H_ib_body').is(':visible')) {
var top = parseInt($('.H_ib_top').css('transform').split(',')[5]);
var left = parseInt($('.H_ib_top').css('transform').split(',')[4]);
var height = $('.H_ib_body').height();
if ($('.H_ib_body').attr('data-isBottom') != '1') { // on top
if (height - top > 0) {
{
$('.H_ib_body').css('bottom', 'auto').css('top', '0em').attr('data-isBottom', '1');
$('.H_ib_tail').css('transform', 'rotate(180deg)');
}
}
} else { // on bottom
var totalHeight = $('#map canvas').height();
if ((top + height) > totalHeight) {
$('.H_ib_body').css('bottom', '.5em').css('top', 'auto').attr('data-isBottom', '0');
$('.H_ib_tail').css('transform', '');
}
}
if ($('.H_ib_body').attr('data-isRight') != '1') { // on left
if (left - $('.H_ib_body').width() < -30) {
$('.H_ib_body').css('right', 'auto').css('left', '-20px').attr('data-isRight', '1');
}
} else { // on right
var totalWidth = $('#map canvas').width();
if (left + $('.H_ib_body').width() > totalWidth) {
$('.H_ib_body').css('right', '0px').css('left', 'auto').attr('data-isRight', '0');
}
}
}
}, 20);
});