Для каждого элемента берем getBoundingClientRect и проверяем, что пересечение существует.
Извиняюсь, что на jQuery, но смысл, вроде и так понятен.
$(function(){
var elements=$('.red,.yellow');
for(let i=0;i<elements.length;i++){
let ri=elements.eq(i)[0].getBoundingClientRect();
for(let j=i+1;j<elements.length;j++){
let rj=elements.eq(j)[0].getBoundingClientRect();
console.log(//ri,rj,
Math.max(ri.x,rj.x)<=Math.min(ri.x+ri.width,rj.x+rj.width)
&&
Math.max(ri.y,rj.y)<=Math.min(ri.y+ri.height,rj.y+rj.height)
)
}
}
})