jQuery Div 元素之間的碰撞檢測
檢測元素之間的碰撞是許多 Web 應用程式中的一項基本任務。在這種情況下,目標是確定是否有兩個特定的
解決此問題的一種有效方法是利用下面提供的overlaps 函數:
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] ); }; })();
此函數需要兩個
為了示範此函數的用法,您可以建立一組
$(function () { var area = $( '#area' )[0], box = $( '#box0' )[0], html; html = $( area ).children().not( box ).map( function ( i ) { return '<p>Red box + Box ' + ( i + 1 ) + ' = ' + overlaps( box, this ) + '</p>'; }).get().join( '' ); $( 'body' ).append( html ); });
在此範例中,建立了一個名為「Red box」的紅色框,並使用滑鼠進行移動。標記為「Box 1」到「Box 4」的其他幾個方塊位於「區域」div 中的不同位置。 jQuery 腳本檢查「紅色框」與其他每個框之間的碰撞,並以一系列
形式顯示結果。
利用overlaps函數,可以有效實現jQuery
以上是如何偵測 jQuery `` 元素之間的衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!