Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

интерактивная карта (SDEVIL)
Author Message
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Apr 13, 2007 5:51 pm (написано за 1 минуту 57 секунд)
   Post subject: интерактивная карта
Reply with quote

У меня такой вопрос:Есть интерактивная карта, можно ли с помощью JS сделать что бы при наведении на область на рисунке, эта область закрашивалась(и выделялась) каким-либо цветом? Подскажите плз...
Back to top
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Fri Apr 13, 2007 8:47 pm (спустя 2 часа 55 минут; написано за 6 секунд)
   Post subject:
Reply with quote

можно
Back to top
View user's profile Send private message
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Apr 13, 2007 11:02 pm (спустя 2 часа 14 минут; написано за 45 секунд)
   Post subject:
Reply with quote

а как это сделать??? Если не сложно пример кода или ссылку...
Back to top
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Fri Apr 13, 2007 11:40 pm (спустя 38 минут; написано за 24 секунды)
   Post subject:
Reply with quote

вот это (forum.vingrad.ru/topic-139784/kw-dhtml-marquee.html) не подойдет?
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 12:50 am (спустя 1 час 9 минут; написано за 2 минуты 18 секунд)
   Post subject:
Reply with quote

не совсем, мне надо чтобы при наведении курсора(на интерактивной карте, не только прямоугольные облости, но и многоугольные области ), эта облась закрашивалась
Back to top
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 6:19 am (спустя 5 часов 28 минут; написано за 30 секунд)
   Post subject:
Reply with quote

SDEVIL wrote:
не только прямоугольные облости, но и многоугольные области ... эта облась закрашивалась
На это можно ответить вашими же словами:
SDEVIL wrote:
а как это сделать???
Back to top
View user's profile Send private message Send e-mail
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Sat Apr 14, 2007 9:02 am (спустя 2 часа 43 минуты; написано за 6 минут 22 секунды)
   Post subject:
Reply with quote

SDEVIL
Ну, в принципе, многоугольные области можно нарисовать на каком-нибудь GIF'е и размещать его полупрозрачным поверх "карты".
Хотя неплохо - бы поподробнее узнать - что за карта, как отмечены "объекты", много ли их и т.д.
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 11:17 am (спустя 2 часа 15 минут; написано за 2 минуты 14 секунд)
   Post subject:
Reply with quote

Карта россии, объекты - федеральные округа, при наведении на федеральный округ он должен закрашиваться?
На счет гифа я думал, это вариант на крайний случай.. :)))
Back to top
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Sat Apr 14, 2007 11:29 am (спустя 12 минут; написано за 4 минуты 19 секунд)
   Post subject:
Reply with quote

Ну, а вот если "хочется помучится" :), есть еще wz_jsgraphics (www.walterzorn.com/jsgraphics/jsgraphics_e.htm). Библиотечка, позволяющая рисовать на JavаScript. Все равно, придется придумывать - как границы этих самых областей передавать в скрипт, так что для этой задачи, имхо, геморой. Лучше gif'ами ...
 Еще, наверное, правильнее - flash...
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 12:22 pm (спустя 52 минуты; написано за 2 минуты 28 секунд)
   Post subject:
Reply with quote

Да, скорее всего придется сделать гифами...
А не подскажите тогда как сделать всплывающую подсказку на картинке(в этой подсказке будут города для округов они будут ссылками, и прописываться в эту подсказку будут php скриптом из базы)..
Back to top
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Sat Apr 14, 2007 2:36 pm (спустя 2 часа 13 минут; написано за 9 минут 42 секунды)
   Post subject:
Reply with quote

Вот ссылка (dev.digitarald.de/tile.html), которую как-то дал Kupuyc. Чем не итерактивная карта?

Как вариант решения:
 - Карта - img, с подключенным к ней с помощью usemap MAP'а. В этом самом МАР'е нарисованы примерные границы федеральных округов и города. Для городов - alt'ом и/или title'ом определяется всплывающая подсказка. Это все добро должно работать и без Javascript. А вот JS нужен для того, чтобы по событиям mouseover над каждой областью MAP'а вывести/убрать соответствующий GIF. Можно еще и всплывающие подсказки перехватить для пущей красоты.
 Вероятные проблемы - у самого MAP'а, вероятно, есть какие-то ограничения на собственный размер, по этому - нужно стараться использовать "не очень подробные" карты. Да и грузить хочется менее чем огромное количество GIF'ов с отметкой. ;-)
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 2:59 pm (спустя 23 минуты; написано за 2 минуты 4 секунды)
   Post subject:
Reply with quote

Карту я сделал, она на гифах, а вот с подсказками сложнее, обычные alt/title не подходят, надо что-то похожее на это(собственно вот карта к ней я и делаю подсказки), еще надо чтоб эта подсказка за курсором ходила...
Back to top
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Sat Apr 14, 2007 3:10 pm (спустя 11 минут; написано за 2 минуты 31 секунду)
   Post subject:
Reply with quote

Город - это точка на карте? Куда там двигаться за курсором? :-)

Движущиеся подсказки встречаются практически во всех больших библиотеках скриптов. Можно посмотреть на vingrad (forum.vingrad.ru/our-javascripts.html)'е, к примеру.
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Apr 14, 2007 3:42 pm (спустя 32 минуты; написано за 57 секунд)
   Post subject:
Reply with quote

Главный объект на карте (которые отмечены) это регионы, а они не точки :)
Back to top
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Apr 15, 2007 12:42 pm (спустя 20 часов 59 минут; написано за 1 минуту 36 секунд)
   Post subject:
Reply with quote

Вообщем я написал код, за мышкой чтоб ездила не стал делать потому что на подсказке будут ссылки, в общем посмотрите может можно по проще сделать(я только начинаю писать на JS), заранее спасибо если кто поможет:
<SCRIPT language="JavaScript">
<!--
    tools_tip = new Array(7);
    tools_tip[0] = "tip_sz";
    tools_tip[1] = "tip_ur";
    tools_tip[2] = "tip_cn";
    tools_tip[3] = "tip_ug";
    tools_tip[4] = "tip_pr";
    tools_tip[5] = "tip_sb";
    tools_tip[6] = "tip_dv";
    
    name_maps = new Array(7);
    name_maps[0] = "map_sz";
    name_maps[1] = "map_ur";
    name_maps[2] = "map_cn";
    name_maps[3] = "map_ug";
    name_maps[4] = "map_pr";
    name_maps[5] = "map_sb";
    name_maps[6] = "map_dv";
    
    flag_of_use = 0;
    function display_pic(name_pic, name_tip, func, flag_of_use){
        switch(func){
            case 'on':
                for(var i=0; i < tools_tip.length; i++){
                    document.getElementById(tools_tip[i]).style.display = "none";
                    document.getElementById(name_maps[i]).style.display = "none";
                }
                tip_alpha = 100;
                document.getElementById(name_tip).style.filter = "alpha(opacity="+tip_alpha+")";
                document.getElementById(name_tip).style.display = "block";
                document.getElementById(name_pic).style.display = "block";
                document.getElementById("map_main").style.display = "none";
                var Timer
                if(Timer != undefined){
                    window.clearTimeout(Timer);
                }
                break;
            case 'off':
                visible_time = 0;
                tip_alpha = 100;
                document.getElementById("map_main").style.display = "block";
                document.getElementById(name_pic).style.display = "none";
                display_pic('', name_tip, 'opac', 0);
                break;
            case 'opac':
                if(visible_time == 0 || visible_time < 30){
                    if(document.getElementById("map_main").style.display == "block" && flag_of_use == 0){
                        visible_time++;
                        tip_alpha -= 2;
                        document.getElementById(name_tip).style.filter = "alpha(opacity=" + tip_alpha + ")";
                        name_tip = name_tip;
                        Timer = setTimeout("display_pic('', '"+name_tip+"', 'opac', 0)", 100);
                    }else{
                        document.getElementById(name_tip).style.filter = "alpha(opacity=100)";
                        window.clearTimeout(Timer);
                    }
                }else{
                    document.getElementById(name_tip).style.display = "none"
                    window.clearTimeout(Timer);
                }
                break;
        }
    }
//-->
</SCRIPT>
Back to top
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Apr 15, 2007 12:43 pm (спустя 1 минуту 12 секунд; написано за 35 секунд)
   Post subject:
Reply with quote

В подсказке можно сделать любое содержание, текст, рисунок, таблицу ....
Back to top
DizzZ
Участник форума



Joined: 23 Jan 2006
Posts: 154
Карма: 8
   поощрить/наказать


PostPosted: Tue May 08, 2007 12:07 pm (спустя 22 дня 23 часа 23 минуты; написано за 2 минуты 7 секунд)
   Post subject:
Reply with quote

Несколько раз сталкивался с такой задачей и выходов тут всего два:
1. Две картинки, одна под другой, на верхней прицеплен imageMap. При наведении на разные области этого imageMap в верхнюю картинку подгружаются разные файлы.
2. (наилучший вариант) Флеш - и никаких извращений не нужно.
Back to top
View user's profile Send private message
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Wed May 16, 2007 5:10 am (спустя 7 дней 17 часов 3 минуты; написано за 33 секунды)
   Post subject:
Reply with quote

Задача решена (forum.dklab.ru/viewtopic.php?t=25829). SDEVIL, это имелось в виду?
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed May 16, 2007 4:20 pm (спустя 11 часов 10 минут; написано за 1 минуту 53 секунды)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
Задача решена (forum.dklab.ru/viewtopic.php?t=25829). SDEVIL, это имелось в виду?
Не совсем, имелось ввиду подсветка облостей исключительно скриптом, без использования картинок, т.е. есть одна большая картинка - карта и все, подсветка только при помощи скрипта...
Back to top
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Sat May 19, 2007 7:50 am (спустя 2 дня 15 часов 29 минут; написано за 1 минуту 34 секунды)
   Post subject:
Reply with quote

SDEVIL: это возможно (в принципе) сделать, если заюзать SVG/VML, но - потребует image-map'ов экстремальной точности. Сделаю такой скрипт через недельку.
Back to top
View user's profile Send private message Send e-mail
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Sun May 20, 2007 5:39 am (спустя 21 час 48 минут; написано за 8 минут 46 секунд)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
Сделаю такой скрипт через недельку.
Это, наверно, было бы лучше. Поскольку с такими вот "накладками" частенько возникают проблемы.
1. Если заставить IE работать в standards-compliant mode, то "накладочка съезжает" немного вверх/влево. Тоже самое можно видеть и в FF при F11 on/off.
2. А вот в Avant Browser'е вообще беда (в Opera тоже)! Там при увеличении/уменьшении масштаба страницы map будет изменять размеры, а "накладка" не будет (а если будет, то куда-нибудь "уедет"). В результате - бардак.

Кстати, именно поэтому я и не люблю абсолютного/относительного позиционирования, т.к. не знаю, как быть в случаях, о которых написал выше. Может кто знает? Расскажите - в долгу не останусь! ;)

Жду скрипт с SVG/VML (поскольку обожаю такие "вещички"). Удачи!
Back to top
View user's profile Send private message Send e-mail
DizzZ
Участник форума



Joined: 23 Jan 2006
Posts: 154
Карма: 8
   поощрить/наказать


PostPosted: Mon May 21, 2007 11:43 am (спустя 1 день 6 часов 4 минуты; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

ИМХО использование SVG/VML по сути то же самое, что и использование Флеша, только сложнее в реализации и ЗНАЧИТЕЛЬНО объемистее в конечном счете (вы примерно представляете себе представление в XML кроивой, описывающей границу некоторой области? так вот таких кривых будем много, каждая на несколько кил как минимум)
Back to top
View user's profile Send private message
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Wed May 23, 2007 9:40 am (спустя 1 день 21 час 57 минут; написано за 4 минуты 23 секунды)
   Post subject:
Reply with quote

DizzZ wrote:
ИМХО использование SVG/VML по сути то же самое, что и использование Флеша, только сложнее в реализации...
Если реализовать "в лоб" - да, а если с хитрецой... ;-)
DizzZ wrote:
...и ЗНАЧИТЕЛЬНО объемистее в конечном счете (вы примерно представляете себе представление в XML кроивой, описывающей границу некоторой области? так вот таких кривых будем много, каждая на несколько кил как минимум)
Просто неверно, т.к. кривые описываются опорными точками -> несколько (десятков) кил на всю карту, что всё равно меньше чем изображения.
Back to top
View user's profile Send private message Send e-mail
DizzZ
Участник форума



Joined: 23 Jan 2006
Posts: 154
Карма: 8
   поощрить/наказать


PostPosted: Wed May 23, 2007 12:14 pm (спустя 2 часа 34 минуты; написано за 1 минуту 48 секунд)
   Post subject:
Reply with quote

Очень любопытно посмотреть на ваше решение с хитрецой.
Насчет "просто неверно" - мне кажется, вы не вполне в курсе дела. Во флеше тоже кривые и они тоже описываются опорными точками, только хранится это в бинарном виде, да еще и упаковывается. Потому ни при каком раскладе векторное изображение в SVG/VML не может быть меньше, чем такое же во флеше.
Back to top
View user's profile Send private message
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Wed May 23, 2007 1:19 pm (спустя 1 час 5 минут; написано за 7 минут 43 секунды)
   Post subject:
Reply with quote

DizzZ wrote:
Насчет "просто неверно" - мне кажется, вы не вполне в курсе дела. Во флеше тоже кривые и они тоже описываются опорными точками, только хранится это в бинарном виде, да еще и упаковывается.
Не знал, спасибо за ликбез.
DizzZ wrote:
Потому ни при каком раскладе векторное изображение в SVG/VML не может быть меньше, чем такое же во флеше.
По сравнению с флешом - верно, по сравнению с растровыми img - нет. Это во-первых.

А во-вторых - я не собираюсь хранить/передавать векторные данные в XML. Исходные данные: MAP/AREA с забитыми в coords координатами + скрипт. Скрипт генерит SVG/VML данные и цепляет их к document. Так что размер здесь - дело 25е.
Back to top
View user's profile Send private message Send e-mail
DizzZ
Участник форума



Joined: 23 Jan 2006
Posts: 154
Карма: 8
   поощрить/наказать


PostPosted: Wed May 23, 2007 1:26 pm (спустя 6 минут; написано за 3 минуты 15 секунд)
   Post subject:
Reply with quote

Quote:
По сравнению с флешом - верно, по сравнению с растровыми img - нет. Это во-первых.
Если почитать предыдущие посты, становится понятно, что с растровыми изображениями я и не сравнивал.
Quote:
А во-вторых - я не собираюсь хранить/передавать векторные данные в XML. Исходные данные: MAP/AREA с забитыми в coords координатами + скрипт. Скрипт генерит SVG/VML данные и цепляет их к document. Так что размер здесь - дело 25е.
В конечном счете данные все равно будут храниться в текстовом виде. Какая разница, XML или что-то другое?
Короче говоря, чего тут спорить? Сделаете - выложите ссылку. Вот и сравним. Как показывает практика, яростными противниками флеша являются исключительно те, кто его не знает, либо знает плохо. Те, кто его знает хорошо, видят очевидные его преимущества во многих областях.
Back to top
View user's profile Send private message
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Sat May 26, 2007 10:48 pm (спустя 3 дня 9 часов 22 минуты; написано за 3 минуты 57 секунд)
   Post subject:
Reply with quote

Скрипт (с SVG/VML) сделал, всё работает :-) только MAP/AREA надо поприличнее сделать (а то больно страшно смотрится), подождите ещё пару дней...

Update: насчёт bug-report'а AKS - выяснил причину. Происходит это из-за того, что DIV'ы, к которым прикрепляются оверлеи - абсолютно позиционируемые. См. код в lightmapper.js:
Code (JavaScript): скопировать код в буфер обмена
    // Retrieve the position of the target image:
    var initX = 0, ct_ = ct;

    if(ct_.offsetParent)
    {
      while(ct_.offsetParent)
      {
        initX += ct_.offsetLeft;
        ct_ = ct_.offsetParent;
      }
    }
    else if(ct_.x)
      initX += ct_.x;

    var initY = 0; ct_ = ct;
    if(ct_.offsetParent)
    {
      while(ct_.offsetParent)
      {
        initY += ct_.offsetTop;
        ct_ = ct_.offsetParent;
      }
    }
    else if(ct_.y)
      initY += ct_.y;
И далее:
Code (JavaScript): скопировать код в буфер обмена
      var dts = div.style;
      dts.position = "absolute";
      dts.top    = ymin + initY + elem["ydsp"];
      dts.left   = xmin + initX + elem["xdsp"];
Заставить работать скрипт без этого мне не удалось - ни тогда ни сейчас.

?...
Back to top
View user's profile Send private message Send e-mail
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Sun May 27, 2007 6:09 am (спустя 7 часов 20 минут; написано за 9 секунд)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
Происходит это из-за того, что DIV'ы, к которым прикрепляются оверлеи - абсолютно позиционируемые.
Так вот и я о том же:
AKS wrote:
именно поэтому я и не люблю абсолютного/относительного позиционирования, т.к. не знаю, как быть в случаях, о которых написал выше.
Back to top
View user's profile Send private message Send e-mail
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Thu May 31, 2007 3:47 am (спустя 3 дня 21 час 38 минут; написано за 1 минуту)
   Post subject:
Reply with quote

Итак, новый скрипт (forum.dklab.ru/viewtopic.php?t=26001). Никаких изображений, только JavaScript + SVG/VML.

SDEVIL: ну как? оно?
Back to top
View user's profile Send private message Send e-mail
SDEVIL
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Jun 04, 2007 12:07 am (спустя 3 дня 20 часов 20 минут; написано за 1 минуту 31 секунду)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
Итак, новый скрипт (forum.dklab.ru/viewtopic.php?t=26001). Никаких изображений, только JavaScript + SVG/VML.

SDEVIL: ну как? оно?
Да, именно то что надо, спасибо, буду разбираться в коде :)))
Back to top
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Tue Jun 05, 2007 3:20 am (спустя 1 день 3 часа 12 минут; написано за 17 секунд)
   Post subject:
Reply with quote

(мысли по поводу)

В принципе, сделать всё тоже самое, но без SVG/VML (= чтоб работало где угодно), можно, используя вышеупомянутый wz_jsgraphics. Я смог с помощью этой библиотеки нарисовать границы областей. Но - для того чтобы изменять прозрачность для этих областей (или просто показывать/скрывать их), библиотеку придётся здорово переработать...

Стоит оно того?
Back to top
View user's profile Send private message Send e-mail
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Sat Jun 09, 2007 7:37 am (спустя 4 дня 4 часа 17 минут; написано за 6 минут 13 секунд)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
(мысли по поводу)
Кто о чем, а я о своем ;).
Пишу сюда, чтобы не "захламлять" тему в "Готовых решениях". Вот, попытался приделать к карте плавающую подсказку с именем страны. Для этого переделал вот что:
1. Элемент с id='name' - у меня теперь не параграф, а блок (div);
2. При вызове конструктора обработчики mouseover/mouseout не передаются, т.к. все "вешается" на документ.
Вот функция:
Code (JavaScript): скопировать код в буфер обмена
(function () {
/*
    var b = (document.compatMode
                && document.compatMode === 'CSS1Compat')
            ? 'documentElement' : 'body',
/*
        over = function (e) {
            var areaName = (e.target || e.srcElement).area;
            if (!areaName) {
                return false;
            }
            var el = document.getElementById('name');
            el.style.display = 'block';
            el.innerHTML = areaName;
        },
/*
        out = function () {
            var el = document.getElementById('name');
            el.style.display = 'none';
            el.innerHTML = '';
        },
/*
        move = function (e) {
            var el = document.getElementById('name');
            el.style.left = scroll('X') + e.clientX + 'px';
            el.style.top = scroll('Y') + e.clientY + 'px';
        },
/*
        scroll = function (p) {
            var s = 'scroll',
                d = (p === 'X')
                    ? 'Left' : 'Top';
            return (window[s + p] || document[b][s + d]) + 8;
        },
/*
        handle = (typeof LightmapperV === 'function')
                 ? LightmapperV.prototype._setup_event : false;
    if (!handle) { //
        return;
    }
    handle(document, 'mouseover', over);
    handle(document, 'mouseout', out);
    handle(document, 'mousemove', move);
})();
Стиль для блока "name":
Code (css): скопировать код в буфер обмена
position:absolute;
display:none;
border:1px solid black;
padding:3px;
background-color:white;
"Побаловался" - вроде работает, как задумано. А вообще можно было бы еще использовать имеющуюся в LightmapperV возможность изменять прозрачность (крутая получилась бы подсказка ;) )...

Last edited by AKS on Mon Jun 11, 2007 3:38 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Sun Jun 10, 2007 2:48 pm (спустя 1 день 7 часов 10 минут; написано за 6 минут 8 секунд)
   Post subject:
Reply with quote

Dmitry Khudorozhkov
Вот еще кое-какие "мысли по-поводу". Вчера возился со сценарием, и для удобства вставил такое расширение вместо вашего LightmapperV.prototype._callLater:
Code (JavaScript): скопировать код в буфер обмена
Function.prototype._callLater = function (aContext, aBool) {
    var caller = this,
        outerArgs = Array.prototype.slice.call(arguments, 2);
    return function (aEvent) {
        if (aBool) {
            var innerArgs = outerArgs.slice();
            innerArgs.unshift(aEvent || window.event);
        }
        caller.apply(aContext, innerArgs || outerArgs);
    };
}
Это вроде знаменитого bind, только если в той библиотеке используется два похожих расширения (bind/bindAsEventListener), то здесь "все в одном". Так получается удобней. Вот пример:
Code (JavaScript): скопировать код в буфер обмена
this._setup_event(polygon, 'mouseover',
                  this._fade._callLater(this, false, polygon,
                                        1, 0.5, 0.1, mi));
Здесь удается сохранить текущий контекст и в дальнейшем вызывать функцию, как this._fade, а не как LightmapperV.prototype._fade.
Если второй параметр true, то в _fade (в данном примере) будет первым параметром передан объект события...
Back to top
View user's profile Send private message Send e-mail
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Mon Jun 11, 2007 1:15 pm (спустя 22 часа 26 минут; написано за 2 минуты 45 секунд)
   Post subject:
Reply with quote

AKS: удобно (наверное) если _callLater используется где-то ещё кроме Lightmapper'а.

Но мне не оч. нравятся скрипты, вклинивающиеся в JavaScript'овые нативные прототипы. Потом фиг отладишь если что...
Back to top
View user's profile Send private message Send e-mail
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Mon Jun 11, 2007 1:35 pm (спустя 20 минут; написано за 1 минуту 48 секунд)
   Post subject:
Reply with quote

Dmitry Khudorozhkov wrote:
Потом фиг отладишь если что...
Да это я пытался всплывающую подсказку сделать частью Lightmapper'а, поэтому и экспериментировал с таким дополнением, чтобы можно было передавать/непередавать объекты события...
Для "домашнего пользования", короче говоря...
Back to top
View user's profile Send private message Send e-mail
Dmitry Khudorozhkov
Участник форума



Joined: 20 Feb 2007
Posts: 65
Карма: 7
   поощрить/наказать

Location: Россия, Московская Область, г. Жуковский

PostPosted: Mon Jun 11, 2007 3:24 pm (спустя 1 час 49 минут; написано за 3 минуты 37 секунд)
   Post subject:
Reply with quote

AKS wrote:
Для "домашнего пользования", короче говоря...
Это можно :-) Кстати, пересмотрите/перепостите плагин для подсказок (4мя постами выше) для последнего варианта скрипта - там имена переменных немного изменились.
Back to top
View user's profile Send private message Send e-mail
Nügun
Заглянувший



Joined: 22 Sep 2010
Posts: 1
Карма: 0
   поощрить/наказать

Location: Киев

PostPosted: Wed Sep 22, 2010 6:05 am (спустя 3 года 3 месяца 10 дней 14 часов 40 минут; написано за 3 минуты 35 секунд)
   Post subject:
Reply with quote

Не сочтите за некропостинг...
Пробую сделать карту помещений (план магазина).
Застрял на моменте обработки кликов по элементам карты - не могу никак понять, что надо сделать, чтобы ссылки открывались.
Как правильно повесить обработку клика по AREA?
Как я понял, при подсвечивании элемента карты, поверх AREA рисуется многоугольник, и ссылка не может быть нажата. Что в этой ситуации делать?
Извините, если вопросы ламерские - пытаюсь самостоятельно разобраться уже шестой час кряду, но опыта не хватает.
Back to top
View user's profile Send private message Send e-mail
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Wed Sep 22, 2010 2:41 pm (спустя 8 часов 36 минут; написано за 2 секунды)
   Post subject:
Reply with quote

w3schools.com/tags/tag_area.asp
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Wed Sep 22, 2010 2:43 pm (спустя 2 минуты; написано за 1 минуту 27 секунд)
   Post subject:
Reply with quote

Nügun wrote:
Как я понял, при подсвечивании элемента карты, поверх AREA рисуется многоугольник, и ссылка не может быть нажата.
можно генерировать событие для карты из обработчика на элементе поверх карты.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML