Position.inbox
En prototype tenemos la función Position.within para saber si un punto esta dentro de un elemento, pero no tenemos ninguna función que detecte si una caja esta tocando a otra. En drag&drop se utiliza la primera para saber si el elemento esta situado dentro del contenedor, para ello le pasamos el ID y las coordenadas del ratón.
Con esta función puedes saber si ambos elementos están tocando. Solo tienes que pasar las ID’s que quieres comprobar.
Ejemplo: Position.inbox('drag','drop');
Position.inbox = function(drag,drop) {
var box = [drag,drop].map(function(e) {
if(typeof e == 'array') return e;
e = $(e);
var pos = this.cumulativeOffset(e);
return [pos[ 0],pos[ 1],e.offsetWidth,e.offsetHeight];
}.bind(this));
var p = [0,1].map(function(i){
if(box[ 0][ i]<=box[ 1][ i]) return (box[ 0][ i] + box[ 0][ i+2]) - box[ 1][ i];
return (box[ 1][ i] + box[ 1][ i+2]) - box[ 0][ i];
});
return (p[ 0] > 0 && p[ 1] >0) ? true : false;
}
Un ejemplo en donde podría valer es en Assets, selected
Ver post
Comentar