2009-11-17 119 views
0

我有一些JavaScript對象,比如這個(它的僞所以我知道如果語法錯誤):檢測鼠標位置是否在一組位置規則內?

[{ "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" }] 

而且我curruently檢測與jQuery鼠標的位置是不錯,但......

我想要檢測當我處於其中一個位置時自動返回該JavaScript集的第一列或多列,就像我在查詢它,如果位置在其中一個返回列集列表之間。

我無法想象,每當鼠標位置發生變化時,我將不得不對每個人做一個.each()?也許我會......

如果任何人之前做過這樣的事情,請指點我正確的方向。

感謝 -Josh

回答

1

一個簡單的方法來做到這一點可能是絕對位置的一些動態創建的div和鼠標懸停事件指派給他們。他們必須具有較高的Z指數,不可見,並高於其他內容。

0

你可以根據你選擇的範例獲得你的慕斯offset,說你的父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; 

如果它匹配,然後觸發顯示您需要的事件!

0

我不知道這個想法會爲你想要的東西的工作,但我沒有條條框框小算盤......

如何使用圖像地圖? :P

它需要最少的編碼和處理,它的工作原理!我覆蓋了一個映射的圖像,並在區域上添加了懸停事件。我發佈了一個demo here - 這不完美,但更多的是一個概念證明。