С какой стороны заходит мышь!
Есть мануал или примеры чтоб определить с какой стороны наводится мышь в 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, время: 07:04. |