10.02.2013, 21:16
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Какому area принадлежит позиция точки ?
Нужно определить по введенным координатам (от перемещаемого над Мап-картой dragable blocka) к какому area принадлежит данная точка,
Пробовал через $(document.elementFromPoint(X,Y) - кажет всегда только единственный елемент, Мап-карту, (Пробовал поднимать z-index(om)
area или обертку area - пофег... (кроме гугол хрома, у него area изначально выше всех)
Как отследить какому area принадлежит позиция (исключая пересчет координат area) ?
Последний раз редактировалось Deff, 10.02.2013 в 23:09.
|
|
10.02.2013, 21:35
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
<!DOCTYPE HTML>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var onlineUserList=[]; // Cписок Юзеров и их локаций
//$(document).ready(function(){ });
function Funk (){ //Функция, исполняемая по загрузке карты
var Areas=[], ArrSpan=[]
$("#karta-00 area").each(function(i){
$(this).wrap('<span id="Span'+i+'" style="display:inline:block;bopder:red solid 1px;z-index:100;display:inline-block;position:relative" onclick="alert('+i+'Span)"></span>');
$(this).get(0).setAttribute('onclick','alert(\''+i+'X\')');
var a=$(this).parent();//
var a=$(this).parents('#karta-00')
alert('top area:'+a.position().top+' Left area:'+a.position().left);
});
alert($('#div').height());
$(document.elementFromPoint(500,300)).click()//alert(alert(click();
$( '#div' ).on( 'click', 'Span', function( e ) {
alert( e.target.href );
});
}
</script>
<div id="div" style="z-index:99;position:absolute width:100%;height:100%;bopder:red solid 1px;" onclick="alert('A')">
<map style="z-index:100;position:relative" id="karta-00" name="karta" style="z-index:100;position:relative" >
<area href="/" shape="rect" coords="0,0,250,150" title="В оглавлении форума">
<area href="/f1-forum" shape="rect" coords="250,0,500,150" title="Ваш первый форум">
<area href="/viewonline" shape="rect" coords="0,150,500,300" title="Просматривает «Кто сейчас на форуме»">
</map>
<img src="http://s017.radikal.ru/i416/1302/69/20132fd94fd6.jpg" style="z-index:0;position:relative" usemap="#karta" border="0" onload="Funk()" onclick="alert('Увидел, что был Клик по карте')/**/">
</div>
</body>
</html>
Последний раз редактировалось Deff, 11.02.2013 в 07:41.
|
|
10.02.2013, 23:21
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Deff
|
перемещаемого над Мап-картой dragable blocka
|
ловить события мыши через делегирование над areas?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
10.02.2013, 23:28
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
nerv_], Cпс,
Сообщение от nerv_
|
ловить события мыши через делегирование над areas?
|
Можно пример ?
В принципе события не всегда есть от юзера - драгабле пустили - он плывет сам по себе, area в момент запуска - вроде итак известен(а далее он должен удариться об край некого ареа (вот тут и нужна фиксация), для прямоугольников конечно можно просчитать все регионы и дать массив границ, а для сложно карты... (Думал генерить событие с hover c текущей координатой, дык - карта их перехватывает(если программное событие, кроме Хрома)
Последний раз редактировалось Deff, 10.02.2013 в 23:35.
|
|
10.02.2013, 23:43
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
я про
$( 'map' ).on( 'mousemove', 'area', function( e ) {
console.log( e.target.href );
});
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 10.02.2013 в 23:46.
|
|
10.02.2013, 23:50
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Попробую, ...
|
|
10.02.2013, 23:59
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Чот не получается программно точку наведения перемещать
document.elementFromPoint(X,Y) получает всегда мап карту(<img usemap="ZZ"> ,если X,Y в её пределах)... а не area
mousemove не передается
Наверно нужен иной способ перемещения координаты псевдонаведения над картой
Кажется Появилясь идея Как делегировать вначале на Map, а не на IMG
Последний раз редактировалось Deff, 11.02.2013 в 00:27.
|
|
|
|