Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перехват координат курсора мыши 1 раз в секунду (https://javascript.ru/forum/events/2569-perekhvat-koordinat-kursora-myshi-1-raz-v-sekundu.html)

Бондя 16.01.2009 18:55

Перехват координат курсора мыши 1 раз в секунду
 
Подскажите, пожалуйста, как это сделать... при помощи onmousemove и setTimeout не выходит(

ZoNT 16.01.2009 18:56

никак.

Kolyaj 16.01.2009 19:00

onmousemove на body.

ZoNT 16.01.2009 19:01

Цитата:

Сообщение от Kolyaj (Сообщение 10918)
onmousemove на body.

И если мышкой не двигать, то никаких координат ты не получишь...
А если двигать резко и за пределы браузера, то тоже :)

Бондя 16.01.2009 19:01

Вот так всегда... задашь вопрос и прийдёт озарение...
Делаем три массива...
x координата
y координата
t координата времени аналогично функции time() в PHP
Далее из полученного массива меток времени выбираем уникальные элементы, с каждым из которых связаны по 1 координате в массиве x и y.
o_O

Хотя, конечно, хотелось бы решение проблемы "без извращений" получить...

Octane 16.01.2009 19:02

Координаты можно узнать только по событию.

Функция для кросс-браузерного определения координат:
var mousePosition = function(ie) {
	return ie ? function(doc, body) {
		return function(e) {
			return {x: e.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0), y: e.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0)};
		};
	}(document.documentElement, document.body) : function(e) {
		return {x: e.pageX, y: e.pageY};
	}
}(/*@cc_on 1 @*/);


Добавьте обработчик события mousemove для всего документа и по таймеру отправляйте в функцию объект-событие, чтобы получить координаты курсора.

Kolyaj 16.01.2009 19:02

Цитата:

Сообщение от ZoNT
И если мышкой не двигать, то никаких координат ты не получишь...
А если двигать резко и за пределы браузера, то тоже

Я же их сохранять буду. А что за пределами браузера все равно.

Kolyaj 16.01.2009 19:05

Octane,
условная компиляция вещь хорошая, но опасная. Может возникнуть желание сжать скрипт YUICompressor'ом.

Octane 16.01.2009 19:11

Packer без проблем справляется с условной компиляцией, кроме извращенных случаев, типа:
return /*@cc_on makeArray( @*/ (node || document).getElementsByTagName(tag || '*') /*@cc_on ) @*/;

А если YUICopressor не умеет сжимать конструкции JScript, зачем им пользоваться?

HelpeR 16.01.2009 20:05

Octane, не распишите более подробно функцию mousePosition, если можно было более даже очень подробно.
Заранее спасибо!


Часовой пояс GMT +3, время: 23:52.