Я пытаюсь написать биты кода на веб-странице html, так что, когда пользователь нажимает мышь внутри моего ClickBox, координаты X и Y сохраняются, а затем отправляются в мою базу данных.
Но пока, обработчик кликов... Вот как далеко я получил:
<body>
<div id = "ClickBox" style = "left:100px;"> </div>
</body>
<script>
$( document ).ready( function(e)
{
$( '#ClickBox' ).click( function(e)
{
alert( e.pageX + ' , ' + e.pageY );
});
});
</script>
<style type="text/css">
#ClickBox { width:640px; height:480px; cursor:pointer; background:#2f2f2f; top:50px; color:#fff; font:bold 12px Arial; }
</style>
Он работает, но отображает координаты щелчка таким образом, что очевидно, что происхождение не является центральным или верхним левым углом моего ClickBox. Как изменить эти фрагменты, так что независимо от того, где мой ClickBox находится на моей странице, я всегда получаю точные координаты с центром моего ClickBox будучи начало координат?
Заранее спасибо,
Координаты относительно верхнего и левого.
coordX = e.pageX - $('#clickbox').offset().left;
coordY = e.pageY - $('#clickbox').offset().top;
Получить координаты с CENTER из Clickbox как источник
coordX = e.pageX - $('#clickbox').offset().left - ($('#clickbox').width() * 0.5);
coordY = e.pageY - $('#clickbox').offset().top - ($('#clickbox').height() * 0.5);
Вам нужно удалить смещение div:
$( '#ClickBox' ).click( function(e){
var coordX = e.pageX - $(this).offset().left,
coordY = e.pageY - $(this).offset().top;
alert( coordX + ' , ' + coordY );
});
e.pageX и a.pageY - позиция четырех курсоров на странице, а не отдельный div.
но вы можете получить положение мыши в div, удаляя верхнее и левое расстояние вашего div от тела