Это действительно беспокоит меня - очень много.
После пробежки по google maps v3, сгенерированному на стороне клиента, в firebug, код на стороне клиента, я почти готов ехать по улице и дать некоторым из этих инженеров часть своего ума ... arrrgh: P
Класс infowWindow создает HTML, который, на мой взгляд, просто сумасшедший. Может быть, кто-то может помочь мне разобраться в этом.
Структура HTML InfowWindow выглядит следующим образом:
#map_canvas > div > div > div > div > div // 5 levels of elements,
no big deal here, ok...
> div // top left corner
div // top right corner
div // bottom left corner
div // bottom right corner
// now comes fun stuff for the speech bubble arrow:
div
div
div
div
div
div
div
div
div
div
// the 10 divs above are stacked diagonally with odd sizes to make this arrow.
i'm sorry but WHY?!? is it done like that? I suppose they wanted the user to be
able to grab the map even right next to the arrow. Think about this: do users
really need to be able to not grab the arrow? if grabbing the arrow causes map pan,
as is the case for the shadow images, would that really be a problem?
div // bottom middle for image background border or something
div // top middle
div // middle
div // bottom middle, again
div // entire block of the infoWindow, probably the container
> img // close box
div // center block with the contents of the infoWindow
div // text content container
WOW - вот и гайки!
обратите внимание, что нет настоящей семантической структуры, и - черт возьми, я осмелился
предположение - нигде нет имен классов, ничего. Я подумал, может быть, у них есть некоторые
вид коробки с 9 срезами происходит, а затем производит стрелку отдельно; Я имею в виду,
спрайт изображения в iw3.png, конечно, не будет проблемой здесь.
Я искренне надеюсь, что кто-то, кто влияет на этот API, сталкивается с этим и
надеюсь, Google в конце концов найдет способ решить это так, что обычай
Визуальные элементы infoWindow так же просты, как и маркеры.
Спасибо за настройку! Приятного комментирования.
тем временем я буду использовать хак, чтобы добраться до этих сумасшедших дивов и заставить их выполнять мои приказы.
ранее я прокомментировал какой-то другой пост, и я думаю, что не должно быть слишком много, чтобы попросить метод в API, который позволяет вам использовать пользовательский интерфейс, не прибегая к почти дублированию всего объекта окна, как в настоящее время необходимо (см. классы расширений Google v3).
google.maps.infoWindow.setStyle({
'topleft' : {
'background' : 'url(images/windowsprite.png) 0 0 no-repeat',
'width' : '10px',
'height' : '10px'
},
'topRight' : {
...etc...
}
...etc...
})