ciembor
9.10.2010, 01:05:59
Mam taki problem. Jest img, po kliknięciu ma się zrobić fadeIn dużej mapy googlemaps. Ładowanie mapy podczas tej operacji jest paskudne, więc postanowiłem załadować ją po załadowaniu okna do diva z display:none, a następnie wykonać już sam fade. Jednak tak zainicjalizowana mapa się źle wyświetla. Nie ładuje wszystkich części mapy, tylko mały jej skrawek (jedną/dwie części). Wie ktoś co z tym zrobić?
devel
9.10.2010, 13:33:44
Nie wiem jak rozwiązać twój problem, ale znam przyczynę, która może okazać się wskazówką.
Problem polega na tym, że Google API odczytuje rozmiar obszaru na którym ma załadować mapę i ładuje tyle fragmentów mapy ile się na nim zmieści, z małym zapasem.
Rozwiązaniem mogłoby być zdefiniowanie także obszaru w tym ukrytym divie.
ciembor
9.10.2010, 22:51:25
No tak, div z display:none nie ma wymiarów:|.
To mu je nadaj. Albo przy pomocy ajax wczytaj mapę do diva.
ciembor
18.10.2010, 06:27:33
Nie do końca mnie zrozumiałeś. Wymiary były nadane w CSS, ale były brane pod uwagę wyłącznie, kiedy div miał display:block, przy display:none były ignorowane. Z Ajaksem - wybacz, nie wiem co masz na myśli.
gargamel
20.10.2010, 18:30:24
A jakbys nie zmianiał display-u diva z mapą (cały czas byłby 'block'), a zamiast tego wrzucił owego diva z mapką, do innego diva, którego widzialnością będziesz se manipulował ?
wiiir
20.10.2010, 22:30:34
a moze cos w stylu position:absolute;top:-9999;left:-9999; diva nie widac

i wymiary sa

zalezy jak chesz tego uzyc
ciembor
22.10.2010, 02:30:39
Poradziłem sobie już z tym problemem w inny sposób. Pomogły dwie metody api googlemaps:
Kod
function show_map() {
$('#bigmap').fadeIn('fast');
map.checkResize();
map.setCenter(point, 16);
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.