С какой стороны заходит мышь!
Есть мануал или примеры чтоб определить с какой стороны наводится мышь в div! То есть слева, справа или сверху?
|
отслеживая координаты мыши при событии onmouseover и изменение их при последующем движении её над контейнером .
какие мануалы? какие примеры на "5 строк" кода? |
Без координат ни как?
|
Цитата:
|
Цитата:
|
Цитата:
боюсь что возникнет в любом случае. а то что не возникнет -это связанно с "провалом события" и имеет своё лечение. |
попробовал на 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>
|
Цитата:
-"провалы" я и имел ввиду. |
Цитата:
|
Цитата:
Для таких целей надо постоянно обрабатывать событие OnMouseMove, вычислять координаты мыши и по двум последним засечкам и определять вектор её перемещения. |
попробовал сделать на css (просто захотелось :-))
чтобы сторона с которой зашла мышь подсвечивалась не будет только работать в IE < 10
<!DOCTYPE HTML>
<html>
<body>
<style>
.main {
width: 100px;
height: 100px;
border: 1px solid;
position: relative;
overflow: hidden;
margin: 30px;
}
div div {
width: 70px;
height: 70px;
position: absolute;
-webkit-transform: rotate(45deg);
-webkit-transform-origin: 0% 0%;
-moz-transform: rotate(45deg);
-moz-transform-origin: 0% 0%;
-o-transform: rotate(45deg);
-o-transform-origin: 0% 0%;
-ms-transform: rotate(45deg);
-ms-transform-origin: 0% 0%;
transform: rotate(45deg);
transform-origin: 0% 0%;
}
.top { left: 50px; top: -50px; }
.right { left: 100px; top: 0; }
.bottom { left: 50px; top: 50px; }
.left { left: 0; top: 0; }
div div:hover {
background-color: red;
border: 71px solid white;
z-index: 1;
}
.top:hover { top: -150px; }
.right:hover { top: -100px; left: 100px; }
.bottom:hover { top: -50px; }
.left:hover { top: -100px; }
</style>
<div class="main">
<div class="top"></div>
<div class="right"></div>
<div class="bottom"></div>
<div class="left"></div>
</div>
</body>
</html>
|
Цитата:
|
думаю можно это сделать и в IE, только зачем?
пример был просто ради изучения css |
| Часовой пояс GMT +3, время: 13:01. |