Обнаружение, находится ли положение мыши в пределах набора правил положения? - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть несколько объектов JavaScript, таких как этот (это psuedo, поэтому я знаю, что синтаксис неправильный):

[{ "divid":"1","x1":"35","y1":"100","height":"150","width":"150" },
{ "divid":"2","x1":"45","y1":"110","height":"150","width":"150" },
{ "divid":"3","x1":"55","y1":"120","height":"150","width":"150" },
{ "divid":"4","x1":"65","y1":"130","height":"150","width":"150" }]

И я определенно определяю положение мыши с помощью jQuery, что хорошо, но ...

Я хочу обнаружить, что когда я нахожусь над одной из этих позиций, автоматически возвращаются первые или несколько столбцов этого набора JavaScript почти так же, как я запрашиваю его, если позиция между одной из них возвращает набор списка столбцов.

Не могу себе представить, что мне придется делать .each() над всеми из них каждый раз, когда изменяется положение мыши? Может быть, я бы ...

Если кто-то делал что-то подобное раньше, пожалуйста, укажите мне правильное направление.

Спасибо -Josh

Ответы [ 3 ]

1 голос
/ 18 ноября 2009

Простой способ сделать это может состоять в абсолютном расположении некоторых динамически создаваемых div и назначении им события mouseOver. Они должны иметь высокий z-индекс, быть невидимыми и размещаться над другим содержимым.

0 голосов
/ 19 ноября 2009

Я не знаю, будет ли эта идея работать на то, что вы хотите, но я немного подумал нестандартно ...

Как насчет использования карты изображений? : P

Это требует минимального кодирования и обработки, и это работает! Я наложил на карту отображенное изображение и добавил всплывающие события на областях. Я разместил здесь демонстрацию - она ​​не идеальна, но является еще одним подтверждением концепции.

0 голосов
/ 18 ноября 2009

Вы можете получить мусс offSet of your, в зависимости от выбранной парадигмы, скажем, ваш родительский div, затем сравните возвращаемые значения с теми, которые вы получаете от вашего JSON!

getposOffset:function(what, offsettype){
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;

если он совпадает, запустите событие, которое показывает, что вам нужно!

...