Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > элемент под курсором


Автор: 02077461 30.10.2007, 02:35
Добрый вечер.
Помогите решить проблему: мне надо получить, над каким элементом находится указатель мыши.
Можно ли это как-либо получить?

Еще вариант: можно ли получить координаты элементов, относительно начала страницы и их ширину/высоту?.. Элементы сверстанные и имеют position по умолчанию. Если можно было бы получить площади элементов и сравнить с положением указателя мыши было бы подходящим вариантом.

Заранее спасибо.

Автор: webevt 30.10.2007, 22:49
Цитата(02077461 @  30.10.2007,  02:35 Найти цитируемый пост)
над каким элементом находится указатель мыши

Используешь обработчик событий(onmousemove, onclick и т.д.), цепляешь на него функцию с таким содержанием:
Код

var obj = window.event.srcElement;

obj - твой объект.


Цитата(02077461 @  30.10.2007,  02:35 Найти цитируемый пост)
получить координаты элементов

Сделать тоже самое что и с первым:
Код

var top = document.body.scrollTop + window.event.clientY;
var left = document.body.scrollLeft + window.event.clientX;
 


Цитата(02077461 @  30.10.2007,  02:35 Найти цитируемый пост)
их ширину/высоту

Все просто:
Код

var width = obj.offsetWidth;
var height = obj.offsetHeight;



Цитата(02077461 @  30.10.2007,  02:35 Найти цитируемый пост)
получить площади элементов и сравнить с положением указателя мыши 

Сделать тоже самое что и с первымы двумя:
Код

var MouseX = window.event.clientX;
var MouseY = window.event.clientY;


Площадь прямоугольника, я думаю, умеют находить все smile

Автор: 02077461 31.10.2007, 22:22
Спасибо за ответ!.Да, не совсем корректно задал вопрос: можно ли без навешивания onmouseover узнать над каким объектом находится указатель мыши?
И второе (пусть с событиями): 

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <script>
    
    function mouseOverEvent(e){
            if(!e){var e=window.event};
            var targ=e.target?e.target:e.srcElement;
        alert(e.clientX + '; ' + e.clientY);
    }
    
    function mouseDownEvent(e){
            if(!e){var e=window.event};
            var targ=e.target?e.target:e.srcElement;
        // alert(e.clientX + '; ' + e.clientY);
        alert(targ.offsetWidth + '; ' + targ.offsetHeight);
    }
    
    window.onload = function(){
        var d = document.getElementById('div1');
        d.onmouseover = mouseOverEvent;
        d.onmousedown = mouseDownEvent;
    }
  
  </script>
  <body>
    <br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;
        <div id=div1 style='position: relative; border: 1px red dotted;' onmouseover='mouseOverEvent(event);' onmousedown='mouseDownEvent(event);'>LAlalalala</div>
        
  </body>
</html>



как изменить этот код, что бы я мог получить левый верхний угол #div1? Сложность в том, что элемент вверстан с разметку. 

-- 
заранее спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)