Ошибка меню Bing Maps: положение: абсолютное/относительное?

У нас странная проблема с новыми картами Bing. При размещении карты в div дальше вниз по странице всплывающее меню (наведите указатель мыши на «вид с высоты птичьего полета») всплывает намного ниже по странице.

Любые идеи, как мы можем исправить этот код, чтобы он работал:

<html>
   <head>
      <title></title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js"></script>
        <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>

      <script>
        $(document).ready(function(){
            //console.debug('Map', ($("#map"))[0]);
            var location = new Microsoft.Maps.Location(-8.59838423, 115.33570617,  0),
                map = new Microsoft.Maps.Map(($("#map"))[0], {
                    credentials: '<removed credentials>',
                    disableUserInput: false,
                    showCopyright: false,
                    showDashboard: true,
                    showLogo: false,
                    showScalebar: false,
                    mapTypeId:Microsoft.Maps.MapTypeId.birdseye
                }
            );


            map.setView({
                animate: false,
                center: location,
                zoom: 12
            });

            //map.entities.push(Microsoft.Maps.Pushpin(location));


          });


      </script>
   </head>
    <body>

        <div style="position: relative;">
            <div style="width:200px; height: 1000px; background: #eee; position: relative;">Some long content</div>
            <div style="position: relative;">
                <div id="map" style="width: 600px; height: 300px; "></div>
            </div>
            <div style="width:200px; height: 1000px; background: #eee;">Some long content</div>
     </div>

    </body>
</html>

person Bodekaer    schedule 25.01.2011    source источник
comment
Вам удалось решить эту проблему? У меня точно такой же сценарий. Еще одна проблема, которая у меня есть (которая, я думаю, связана с тем же корнем), заключается в том, что MouseEventArgs.getY(), возвращаемый в событии dblclick, совершенно неверен (я добавляю канцелярскую кнопку на карту двойным щелчком, а канцелярская кнопка не добавляется в том месте, где я нажмите). Это также приводит к искажению масштаба при использовании колесика мыши для масштабирования. Если у кого-то есть решение этой проблемы, будем очень благодарны!   -  person OGG    schedule 04.02.2011
comment
Microsoft говорит, что эта проблема исправлена, но для моей страницы она вообще не исправлена. Теперь они заставляют страницу перейти наверх, а затем размещают меню. Однако он все еще не находится в правильном положении. См. эту тему для получения дополнительной информации: social.msdn.microsoft.com/Forums/eu/vemapcontroldev/thread/   -  person Matt Wolfe    schedule 21.03.2011


Ответы (2)


Вам нужно добавить объявление DOCTYPE в начало документа перед открывающим тегом следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Описано здесь: http://msdn.microsoft.com/en-us/library/gg427624.aspx

(В качестве примечания я также предлагаю вам отредактировать свой вопрос, чтобы удалить строку «учетные данные» - это ваш личный ключ приложения, который вы должны попытаться защитить)

person Alastair Aitchison    schedule 25.01.2011
comment
См. эту страницу: michaelbodekaer.com/temporary/BingBug_position.html Это прямая копия script, на который вы ссылались, все, что я сделал, это добавил div выше. Если вы наведете курсор мыши на меню под названием Birdsview, вы увидите всплывающее окно под экраном. - person Bodekaer; 28.01.2011

Я изучил это и обнаружил, что когда меню запускалось до того, как я прокручивал вниз, меню появлялось в правильном положении. Однако, если бы я сначала прокручивал страницу вниз, меню отображалось бы на X пикселей, где X равно количеству прокручиваемых пикселей.

Мой диагноз заключается в том, что Microsoft вычисляет смещение от прокручиваемой области просмотра (идиотски), а не от верхней части фактической страницы. Я думаю, что единственный способ исправить это для Microsoft — исправить свою ошибку.

person Tyler Tate    schedule 03.02.2011