Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2012, 16:21
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

С какой стороны заходит мышь!
Есть мануал или примеры чтоб определить с какой стороны наводится мышь в div! То есть слева, справа или сверху?
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2012, 17:27
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

отслеживая координаты мыши при событии onmouseover и изменение их при последующем движении её над контейнером .
какие мануалы? какие примеры на "5 строк" кода?

Последний раз редактировалось dmitriymar, 20.01.2012 в 17:30.
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2012, 17:42
Аватар для KupueIIIKo
Профессор
Отправить личное сообщение для KupueIIIKo Посмотреть профиль Найти все сообщения от KupueIIIKo
 
Регистрация: 04.10.2011
Сообщений: 357

Без координат ни как?
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2012, 17:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от KupueIIIKo
Без координат ни как?
ну расположи сверху каждой из 4х сторон дива по контейнеру с 1 пиксельной шириной. при событии маусовер у любого из них можно определить с какой стороны вход был
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2012, 20:15
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от dmitriymar Посмотреть сообщение
ну расположи сверху каждой из 4х сторон дива по контейнеру с 1 пиксельной шириной. при событии маусовер у любого из них можно определить с какой стороны вход был
-плохо. при быстром движении мыши "маусовер" на однопиксельном диве может не возникнуть.
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2012, 20:35
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Маэстро
-плохо. при быстром движении мыши "маусовер" на однопиксельном диве может не возникнуть.
какое отношение имеет возникновение события к отслеживанию координат курсора?
боюсь что возникнет в любом случае. а то что не возникнет -это связанно с "провалом события" и имеет своё лечение.
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2012, 11:03
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

попробовал на jquery сделать
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>
  <script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>

	<script>
	$(function(){
		$('div').mouseenter(function (e) {
			var jEl = $(this),
				w = jEl.outerWidth(),
				h = jEl.outerHeight(),
				off = jEl.offset(),
				x = e.pageX - off.left,
				y = e.pageY - off.top,
				xShift, // сдвиг от правой или левой границы
				yShift, // сдвиг от верхней или нижней границы
				xText,
				yText,
				itogText;

			if (x / w > .5) {
				xShift = w - x;
				xText = 'справа';
			} else {
				xShift = x;
				xText = 'слева';
			}
			
			if (y / h > .5) {
				yShift = h - y;
				yText = 'снизу';
			} else {
				yShift = y;
				yText = 'сверху';
			}
			
			itogText = (xShift < yShift) ? xText : yText;
		   
			jEl.text(itogText);
		});
	});  

	</script>
</head>
<body>
	<div style="width: 100px; height: 100px; padding: 20px; margin: 20px; background: red;"></div>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2012, 13:11
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от dmitriymar Посмотреть сообщение
какое отношение имеет возникновение события к отслеживанию координат курсора?
боюсь что возникнет в любом случае. а то что не возникнет -это связанно с "провалом события" и имеет своё лечение.
-В задаче не было сказано ни слова о координатах. Человеку надо узнать направление, т.е. факт сверху/снизу/слева/справа.
-"провалы" я и имел ввиду.
Ответить с цитированием
  #9 (permalink)  
Старый 21.01.2012, 15:00
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Маэстро
"провалы" я и имел ввиду.
дак а какое отношение имеют провалы к ширине блока?
Ответить с цитированием
  #10 (permalink)  
Старый 23.01.2012, 13:31
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от dmitriymar Посмотреть сообщение
дак а какое отношение имеют провалы к ширине блока?
Событие onmouseover не является гарантированным. При малой ширине блока (1 px) и быстром перемещении мыши оно может не возникнуть.
Для таких целей надо постоянно обрабатывать событие OnMouseMove, вычислять координаты мыши и по двум последним засечкам и определять вектор её перемещения.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С какой стороны взяться? bayrach jQuery 3 06.03.2011 13:31
какой по счёту li vanderv jQuery 15 14.11.2010 21:26
Обращение к картинке на котрую наведена мышь Lynch Общие вопросы Javascript 3 25.04.2010 13:13