Показать сообщение отдельно
  #2 (permalink)  
Старый 12.12.2011, 00:22
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

function touchTwins (_el1, _el2)
{
			var
			el1_TopSTART  = parseInt(_el1.style.left, 10), //начальная точка верхнего отрезка 1 квадрата
			el1_TopEND    = el1_TopSTART + parseInt(_el1.style.width, 10), //конечная точка верхнего отрезка 1 квадрата
			el1_leftSTART = parseInt(_el1.style.top, 10), //начальная точка левого отрезка 1 квадрата
			el1_leftEND   = el1_leftSTART + parseInt(_el1.style.height, 10), //конечная точка левого отрезка 1 квадрата

			el2_TopSTART  = parseInt(_el2.style.left, 10), //начальная точка верхнего отрезка 2 квадрата
			el2_TopEND    = el2_TopSTART + parseInt(_el2.style.width, 10), //конечная точка верхнего отрезка 2 квадрата
			el2_leftSTART = parseInt(_el2.style.top, 10), //начальная точка левого отрезка 2 квадрата
			el2_leftEND   = el2_leftSTART + parseInt(_el2.style.height, 10) //конечная точка левого отрезка 2 квадрата


			if ( //теперь сравниваем какой из них левее какой правее какой ниже какой выше
				el2_TopSTART>el1_TopEND ||   //если начало верхней грани 2 дальше влево чем конец верхней грани 1
				el1_TopSTART>el2_TopEND ||   //ИЛИ если начало верхней грани 1 дальше влево чем конец верхней грани 2
				el2_leftSTART>el1_leftEND || //ИЛИ если начало левой грани 2 дальше вниз чем конец левой грани 1
				el1_leftSTART>el2_leftEND    //ИЛИ если начало левой грани 1 дальше вниз чем конец левой грани 2
			   )
			{ //то тогда они в любом случае не пересекаются
						return false // пересечения нет
			}
			else{ //иначе есть пересечение
						/*и тут кстати можно высчитать область наложения))) если нужно
						 *напрмиер можно возвращать число 1 если они просто пересекаются, и 2 если они совпадают
						 */
						return true //пересечение есть
			}
}

Последний раз редактировалось Livanderiaamarum, 12.12.2011 в 18:41.
Ответить с цитированием