Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие движения мыши (https://javascript.ru/forum/events/15416-sobytie-dvizheniya-myshi.html)

GLeBaTi 25.02.2011 19:54

Событие движения мыши
 
Здравствуйте.
У меня есть много div-ов. У каждого дива должен быть обработчик события движения мыши. В обработчик я должен получать ссылку на объект(который вызвал событие) и координаты мыши относительно этого объекта. Как это реализовать?

Вот пример:
function mouseEventF(event)
{
//вот что я хочу получить.
event.targetObject;
event.mouseX;
event.mouseY;
}
<div onmousemove="mouseEventF"></div>
<div onmousemove="mouseEventF"></div>
<div onmousemove="mouseEventF"></div>

GLeBaTi 25.02.2011 19:58

Или хотыбы подскажите, как реализовать движение background-position как здесь http://www.shurum-burum.ru/photos/

Amphiluke 25.02.2011 20:02

function mouseEventF(e)
{
if (!e) e = event;
var vot_chto_ya_xochy_poluchit = e.target || e.srcElement;
}


<div onmousemove="mouseEventF(event);"></div>
<div onmousemove="mouseEventF(event);"></div>
<div onmousemove="mouseEventF(event);"></div>


Но по-хорошему я бы вам советовал навешивать обработчики динамически по событию готовности DOM, чтобы не захламлять HTML разметку.

GLeBaTi 25.02.2011 20:15

Спасибо!!!)

Amphiluke 25.02.2011 20:31

Вот пример, как можно было бы организовать движение фона при движении указателя мыши по объекту.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
	#movingbgs div {
		width:250px;
		height:50px;
		margin-bottom:10px;
		background:url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif) 50% 50% no-repeat;
	}
</style>
<script type="text/javascript">
	function _addListener(o, e, h) {
		if (o.addEventListener) {
			o.addEventListener(e, h, false);
		} else {
			o.attachEvent("on" + e, h)
		}
	}
	function moveBg(e) {
		if (!e) e = event;
		var sender = e.target || e.srcElement;
		var bgX = 100 * (e.clientX - sender.offsetLeft) / sender.offsetWidth ;
		var bgY = 100 * (e.clientY - sender.offsetTop) / sender.offsetHeight;
		sender.style.backgroundPosition = bgX + "% " + bgY + "%";
	}
	function attachHandlers() {
		var divs = document.getElementById("movingbgs").getElementsByTagName("div");
		for (var i = 0; i < divs.length; i++) {
			_addListener(divs[i], "mousemove", moveBg);
		}
	}
	_addListener(window, "load", attachHandlers);
</script>
</head>

<body>
	<div id="movingbgs">
		<div></div>
		<div></div>
		<div></div>
	</div>
</body>
</html>

SERGE19 01.03.2011 20:40

привет всем кто-нибуть может мне обЪяснить как действует drag and drop

SERGE19 01.03.2011 20:41

а то я вообше не врубаю ка чтоо произходит:)

SERGE19 02.03.2011 15:05

как написать на html

monolithed 02.03.2011 16:01

http://javascript.ru/ui/draganddrop


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