Показать сообщение отдельно
  #2 (permalink)  
Старый 28.06.2012, 00:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
1. использовать document.elementFromPoint(clientX, clientY)
А кто мешает это юзать? вроде насколько мне помнится это и в ИЕ отлично работает, даже IE7 если не ошибавюсь.
<!doctype html>
<html>
	<head>
	</head>
	<body>

<div id="dragged" style=" top: 10px; width: 50px; height: 50px; background-color: #0f0; position: absolute;"></div>
<div id="target" style="position: absolute; border: 10px solid #f00; left: 50%; top: 40%; width: 100px; height: 100px; background-color: #f00;"></div>

<script type="text/javascript">

var oX, oY, elmousedowned = null;

document.getElementById('dragged').onmousedown = function( e ) {

	e = e || window.event;

    elmousedowned = e.target || event.srcElement;

    oX = e.offsetX || e.layerX;
    oY = e.offsetY || e.layerY;

    elmousedowned.style.zIndex = 100;
}
document.onmousemove = function( e ) {
    if ( elmousedowned ) {

		e = e || window.event;

		if ( e.pageX == null && e.clientX != null ) {
			var html = document.documentElement;
			var body = document.body;
			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
			e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
		}

        elmousedowned.style.left = ( e.pageX - oX ) + "px";
        elmousedowned.style.top = ( e.pageY - oY ) + "px";

        // временно уберем перетаскиваемый элемент, что бы увидеть что под курсором
        elmousedowned.style.display = 'none';

        var el = document.elementFromPoint( e.pageX, e.pageY );

        if ( el && el === document.getElementById('target') ) {
            el.style.borderColor = "#00f";
        } else {
            document.getElementById('target').style.borderColor = "#f00";
        }

        elmousedowned.style.display = 'block';
    }
}
document.onmouseup = function() {
	if ( elmousedowned ) {
	    elmousedowned.style.zIndex = "";
	    elmousedowned = null;
	}
}
</script>

	</body>
</html>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием