Страница 1 из 1

OpenLayers: pop-up окна

Добавлено: 23 янв 2010, 19:21
Naphtizin
Здравствуйте. Сделал на своей карте пару маркеров, при клике по маркерам появляются pop-up окна с информацией. Пользовался вот этим примером: openlayers.org/dev/examples/popupMatrix.html
Знает ли кто-нибудь как сделать чтобы окно всплывало не при клике, а при наведении курсора на маркер?
Заранее благодарен.

Re: OpenLayers: pop-up окна

Добавлено: 24 янв 2010, 00:00
wmk
В примере есть строчка:
marker.events.register("mousedown", feature, markerClick);

Попробуй изменить событие на например mousemove , mouseout , mouseover

Re: OpenLayers: pop-up окна

Добавлено: 24 янв 2010, 09:03
Naphtizin
Спасибо! Написал так:
marker.events.register("mouseover", feature, markerClick);
marker.events.register("mouseout", feature, markerClick);
"mouseover" - для того чтоб окно появлялось и "mouseout" - чтоб исчезало.
Может не совсем правильно, но работает.
Еще раз спасибо.

Re: OpenLayers: pop-up окна

Добавлено: 28 фев 2010, 09:44
Naphtizin
Возникла новая проблема - сделал popup появляющийся по нажатию кнопки:

Код: Выделить всё

        function add() {
            popup = new OpenLayers.Popup("chicken", 
                                         new OpenLayers.LonLat(9222089.24280,7359384.47360),
                                         new OpenLayers.Size(100,100),
                                         "example popup",
                                         true);
            popup.closeOnMove = true;
            map.addPopup(popup, popupClass);
        }  
...

<button onclick="add(9222089.24280,7359384.47360)">Button</button>
Нужно чтобы окно имело форму облака (FramedCloud).
Пробовал так:

Код: Выделить всё

function add() {
            popup = new OpenLayers.Popup.FramedCloud("chicken", 
                                         new OpenLayers.LonLat(9222089.24280,7359384.47360),
                                         new OpenLayers.Size(100,100),
                                         "example popup",
                                         true);
            popup.closeOnMove = true;
            map.addPopup(popup);
        }
и так:

Код: Выделить всё

        AutoSizeFramedCloud = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
            'autoSize': true
        });

        function add() {
            popup = new OpenLayers.Popup("chicken", 
                                         new OpenLayers.LonLat(9222089.24280,7359384.47360),
                                         new OpenLayers.Size(100,100),
                                         "example popup",
                                         true);
            popupClass = AutoSizeFramedCloud;
            popup.closeOnMove = true;
            map.addPopup(popup);
        }  
В первом случае popup окно ввобще не появляется, во втором появляется, но такое как и было.
Может кто подскажет где я допускаю ошибку!?

Re: OpenLayers: pop-up окна

Добавлено: 28 фев 2010, 13:48
Mavka
У меня работает - Geosample (см. код здесь).

У вас, на первый взгляд, не хватает параметра между "example popup" и "true". Это anchor, можно принять равным "null".

Re: OpenLayers: pop-up окна

Добавлено: 28 фев 2010, 15:53
Naphtizin
Да, действительно. Так и есть. Теперь всё работает. Большое спасибо!