ノードが別のノードと重なっている場合は、jQueryで知ることはできますか?画面上の位置を見つけるために1つのノードが他のノードと重複しているかどうかを確認する
2
A
答えて
4
したがって、重複を検出したいですか?そして、この:
var overlaps = (function() {
function getPositions(elem) {
var pos, width, height;
pos = $(elem).position();
width = $(elem).width();
height = $(elem).height();
return [ [ pos.left, pos.left + width ], [ pos.top, pos.top + height ] ];
}
function comparePositions(p1, p2) {
var r1, r2;
r1 = p1[0] < p2[0] ? p1 : p2;
r2 = p1[0] < p2[0] ? p2 : p1;
return r1[1] > r2[0] || r1[0] === r2[0];
}
return function (a, b) {
var pos1 = getPositions(a),
pos2 = getPositions(b);
return comparePositions(pos1[0], pos2[0]) &&
comparePositions(pos1[1], pos2[1]);
};
})();
使用法:
if (overlaps(node1, node2)) {
// ...
}
0
使用.offset()
:offset();
で
をウィンドウの上部からのピクセルでその場所になりますtop
と呼ばれる座標Yを取得することができます。
var boxOne = $('#boxOne').offset():
var boxTwo = $('#boxTwo').offset():
if(boxOne.top>boxTwo.top) {
alert('boxOne is higher');
} else if (boxOne.top==boxTwo.top) {
alert('boxes are even');
} else {
alert('boxTwo is higher');
}
+1
OPは[重複](http://data.imagup.com/11/1138998080.png)を検出しようとしています。 –
0
jQueryには、あなたが探していることを実行する関数.index()があります。
あなたが機能についての具体的な質問がありましたらお気軽に: はこちらのページへのリンクです。
0
DOM内の位置については、私はindex()
で十分ではないと思います。あなたが2つの姉妹要素を比較している場合を除きます。より一般的には、
- 使用
parents()
両方のノード - 上
- 同じで
(代わりに、あなたもindex()
を行うことができ、最高異なる祖先にindex()
を比較しながら、両方の祖先リストから要素をオフにポップ$('*')
にありますが、それはひどく非効率であると思います)
EDIT:clarificatイオンは@マイクの答えの下で、これは正式に衝突検出の質問です。したがって、私はthisのようなものが順番にあると思いますが、コメントに注意してください。代わりに、jQuery offset()
functionを使用して要素の位置を取得することができます。比較ロジックは健全です。
関連する問題
- 1. 重複ノードを確認するVivaGraph js
- 2. 親ノードに子ノードがないかどうかを確認する方法
- 3. ノードがReact/React Nativeの別のノードの親ノードであるかどうかを確認します
- 4. ノード(クラスのインスタンス)がクリックされているかどうかを確認する
- 5. Firebase:ノードが存在するかどうかの確認
- 6. ノードが存在するかどうかを確認してください。
- 7. ノード - ディレクトリが存在するかどうかを確認してください
- 8. XSL:子ノードが重複している親ノードを削除
- 9. iosサブビューが重複しているかどうかを確認します(ヒットテスト?)
- 10. LIMITでは、ノードが残っているかどうかをどのように確認しますか?
- 11. Swift + Firebase - autoIdを持つノードの値が存在するかどうか確認してください。
- 12. テーブルに重複があるかどうかを確認する
- 13. ツリービューのどのノードがクリックされたかを確認する
- 14. ツリー内のノードの子ノードが0か2かどうかを確認する方法は?
- 15. ノード内の他のノードに依存するモジュールを確認する
- 16. xmlノードがasp.netのルートであるかどうかを確認する方法
- 17. 列内のセルが重複しているかどうかを確認し、別の列のセルが0かどうかを確認してください。
- 18. Firebase DB:ノードに子がないかどうかを確認しますか?
- 19. テンソルフローGraphDefのSendノードとReceiveノードを確認できますか?
- 20. 重複があるかどうかの小枝確認
- 21. 2つのdivが重複しているかどうかを確認する方法は?
- 22. vbscriptでxmlノードが空であるかどうかを確認します。
- 23. ノードがCDATAセクションかどうかを確認
- 24. Scala:xmlの各ノードがパラメータを定義しているかどうか確認してください。
- 25. 1つのレスポンスオブジェクトに複数のイメージを送信するノード - ノード
- 26. どのようにしてノード/ x/editをノード/ x/addとして1つのパネルでオーバーライドできますか?
- 27. XElementに子ノードがあるかどうかを確認する方法は?
- 28. ボタンをクリックした後、ノードがjstreeの親ノードであるかどうかを確認するにはどうすればよいですか?
- 29. ノードがビューア内のアセンブリまたはパーツであるかどうかを確認
- 30. 複数の区間が重複していないかどうかを確認する
DOMに関してで 'above'と' below'を定義しますか? –
David Thomasの質問の上に、どのようにノードを選択するのですか? – Jasper
「上」と「下」の3つの異なる意味に基づいて、3つの異なる答えが得られたので、間違いなく「上」と「下」を定義してください... – redShadow