2017-02-09 1 views
0

このfiddleのようなマウスアップイベントで、異なるSVG要素のオーバーラップを検出しようとしています。マウスイベントで複数のオーバーラップSVGシェイプ要素を検出する

$('svg').on('mouseup', function(evt) { 
    var root = $('svg')[0]; 
    var rpos = root.createSVGRect(); 
    rpos.x = evt.clientX; 
    rpos.y = evt.clientY; 
    rpos.width = rpos.height = 1; 
    var list = root.getIntersectionList(rpos, null); 

    for (var i = 0; i < list.length; i++) { 
    if (list[i] != evt.target) { 
     $(list[i]).mouseup(); 
    } 
    } 
}); 

私は(としようとしたがgetIntersectionListを使用してきた四角形、円だけでなく、このfiddleのように多角形の間のmouseupに重複を検出できるようにしたいが)のみだけ矩形形状のために働くようです。

もう1つの方法は、マウスアップでルートSVG座標を取得し、SVG要素の内部の座標と一致するかどうかを確認することです。

マウスアップで複数のSVG要素シェイプの交差を検出する方法がありますか?

+0

交差点を言うとき、実際にどの要素がカーソルの下にあるのかを意味していますか? – Ian

+0

@Ian、はい。カーソルの下にある要素のリストを取得する。 –

答えて

0

FirefoxはgetIntersectionList()をサポートしていません。私はChromeやその他のブラウザについてはわかりません。

回避方法はthis other questionに記載されています。

関連する問題