узнать координаты мыши

igor a

Новичок
узнать координаты мыши

нашел мега упрощенный код для того что б узнать координаты мыши
PHP:
onload = function() {    
 document.onclick = function(e) { 
      if(!e) e = event;       
alert([e.clientX, e.clientY]);   
  } 
  }
пытаюсь его переписать как обычную функию, которая будет вызываться, а не грузится евентом онклик. отсюда появляется трабла, что за параметр e принимается в функции? если его не передавать при вызове - попросту не работает.

или предложите альтернативный вариант узнать координаты мыши!
 

dimagolov

Новичок
так жить будет только в IE, еде объект event имеется в глобальном контексте.

надо вешать обработчики через addEventListener/attachEvent, тогда параметром будет тебе event
 

ksnk

прохожий
dimagolov чушь. Скрипт работает в FF и Хроме в том числе :)

Это "мегаупрощение" только верхушка того айсберга, который позволяет узнать координаты мыши. Чтобы узнать его везде и всегда - нужно много чего написать... Зачем возникла такая задача, можно поинтересоваться?
 

dimagolov

Новичок
мда.. ступил.

поменяй onclick на onmousemove, но на самом деле ksnk прав, в JavaScript, который событийно-ориентированный, вопрос "где сейчас находится курсор" не имеет смысла, так как код JS должен отрабатываться ТОЛЬКО тогда, когда в нем есть необходимость, и вот в этот момент легко можно узнать где мышь

e - это объект Event. для IE (который не передает его как параметр при такой привязке события) смотрится в глобальном контексте объект event, который типа всегда есть.

-~{}~ 25.01.09 17:18:

вот тема, где автор тоже хотел чего-то подобного
 

igor a

Новичок
Автор оригинала: ksnk
Зачем возникла такая задача, можно поинтересоваться?
галерея, скроллинг мышкой. событие - наведение мыши на определенный див. кто может набросать примерный код? я так понимаю что-то вроде этого
PHP:
<div onmouseover="getCoords();">.....



function getCoords(e)
{
   mouseX = Event.pointerX(e);
   mouseY = Event.pointerY(e);
}
но не нарботает. подправте плиз, ато сроки до завтра, и ничего не могу нагуглить толком(
 

ksnk

прохожий
PHP:
<div onmouseover="getCoords(event);"><br><br>..... </div>
<button onclick="alert([mouseX,mouseY])">Clickme </button>


<script>
mouseX=0;mouseY=0;
function getCoords(e) 
{ 
   mouseX = e.clientX; 
   mouseY = e.clientY; 
}
</script>
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
юзай jquery, там все привели к единому интерфейсу - намного проще и удобней все
 

igor a

Новичок
теперь другой прикол получается. на ночь не соображается чето. стоит задача, что б когда скажем указатель мыши находится в правой части ленты прокрутки - то оно крутилось пока указатель мыши не сдвинется нафиг вообще с этой ленты.
делаю так, ставлю на див событие на наведение мышы. вызывает оно функцию с видом типа такого:ъ
PHP:
function galleryGo(e)
		{
			var side = getcordsInDiv(e); // возвращает 1 если указатель мыши в правой части, -1 - если в левой, и 0 - если вне ленты прокрутки

			if(side== 1)
			{
				moveRight(e); // прокручивает содержимое дива на несолько пикселей с задержкой
				return;
			}

			if(side== -1)
			{
				moveLeft(e);
				return;
			}
}
и вот получается, что прокручивается оно тогда, когда двигается мышка. а надо как я описал выше. понятно что из этого кода логично это и следует, что оно так работает. но если делать например рекурсией - то вообще глючит страшно. кто подскажет идею как это лучше реализовать в js? или набросок кода! не доучил в свое время его....
 

rotoZOOM

ACM maniac
Все просто. При вхождении в область прокрутки (onmouseover), ты запускаешь таймер, который будет вызывать функцию сдвига каждые N мс, при выходе из области прокрутки (onmouseout), ты останавливаешь этот таймер.
 

igor a

Новичок
rotoZOOM
как его запстить, и при онмаусаут остановить? не совем понял...

-~{}~ 26.01.09 14:34:

вообщем, кто может помочь пофиксить скрипт за $$. отпишитесь в личку, СРОЧНО!!!!
 

igor a

Новичок
rotoZOOM
это понятно) ну как при наведении мышы его запустить - то понятно! а вот остановить как? делал через скажем так "переменную состояния", но что-то не работает оно!
 

dimagolov

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