Появление окна слево под курсором мышки
Всем привет!!! Недавно задался задачей такой: есть ссылка какая нибудь, при клике на нее появляется дивчик прямо под курсором слева, вот это прямо под курсором слева сделать не могу, где то в сети видел пример когда то, а вспомнить не могу, помогите пожалуста.
|
<!DOCTYPE html>
<style>
#popup{
position: fixed;
background: rgba(0, 0, 0, 0.8);
box-shadow: 0 0 5px black;
padding: 3px 6px;
color: white;
font: 12px Arial;
}
</style>
<a href="#">Ссыкла какая нибудь</a>
<div id="popup" style="display:none">дивчик</div>
<script>
(function(){
var link = document.querySelector('a');
var popup = document.getElementById('popup');
link.addEventListener('click', function(e){
e.preventDefault();
popup.style.display = 'block';
popup.style.left = e.pageX - popup.offsetWidth + 'px';
popup.style.top = e.pageY + 'px';
});
})();
</script>
|
Спасибо большое за пример, но мне надо определить координаты курсора относительно элемента, допустим относительно body
|
1) Определяем координаты элемента относительно окна (через getBoundingClientRect)
2) Вычитаем из координат курсора координаты элемента |
Смотрите что на просторах javascript.ru нашел
function mousePageXY(e)
{
var x = 0, y = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY)
{
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY)
{
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return {"x":x, "y":y};
}
Добавил себе в копилочку, но все равно спасибо за все) |
Цитата:
|
Да собственно ничем, просто тут готовая функция, в полиэтилене))))
|
Так нужно с использованием jquery или нет?
|
Ну с самого начала нужно было с использованием jquery теперь уже пофиг))) Все равно спасибо вам
|
$('a').click(function(e){
alert(e.pageX);
});
Это замена вашему скрипту )) А вобще странно. Я вам предложил вариант с .pageX, но вы сказали что вам нужны координаты относительно некоторого элемента. Потом вы приводите код где используется тот же самый .pageX без всякой обработки, и который якобы решает вашу задач. Как так? |
| Часовой пояс GMT +3, время: 18:09. |