jQuery를 사용하여 이미지에서 마우스 클릭의 X/Y 좌표 가져오기
저는 jQuery를 사용하여 이미지에서 클릭 이벤트의 X/Y 좌표를 얻고 싶습니다.좌표는 전체 페이지가 아니라 이미지에 상대적이어야 합니다.
를 사용하여 창에서 마우스의 위치를 파악할 수 있습니다.jQuery's를 사용하여 요소의 위치를 얻을 수도 있습니다.
그래서, 그래야 합니다.pageX - offset.left
이미지의 왼쪽에서 얼마나 멀리 그리고pageY - offset.top
이미지 상단에서 얼마나 멀리 떨어져 있는지 확인합니다.
다음은 예입니다.
$(document).ready(function() {
$('img').click(function(e) {
var offset = $(this).offset();
alert(e.pageX - offset.left);
alert(e.pageY - offset.top);
});
});
아래나 오른쪽에서 얼마나 멀리 떨어져 있는지 계산하려면 jQuery의 방법과 방법을 사용해야 합니다.
음! 사이에 차이가 있습니다.e.clientX
&e.clientY
그리고.e.pageX
그리고.e.pageY
두 가지 방법을 모두 사용해 보고 적절한 방법을 사용하는지 확인합니다.clientX
그리고.clientY
스크롤 위치를 기준으로 변경
여기 더 나은 스크립트가 있습니다.
$('#mainimage').click(function(e)
{
var offset_t = $(this).offset().top - $(window).scrollTop();
var offset_l = $(this).offset().left - $(window).scrollLeft();
var left = Math.round( (e.clientX - offset_l) );
var top = Math.round( (e.clientY - offset_t) );
alert("Left: " + left + " Top: " + top);
});
아래 코드는 어떤 이미지가 윈도우를 스크롤하더라도 항상 작동합니다.
$(function() {
$("#demo-box").click(function(e) {
var offset = $(this).offset();
var relativeX = (e.pageX - offset.left);
var relativeY = (e.pageY - offset.top);
alert("X: " + relativeX + " Y: " + relativeY);
});
});
참조: http://css-tricks.com/snippets/jquery/get-x-y-mouse-coordinates/
http://jsfiddle.net/TroyAlford/ZZEk8/ 에서 아래의 작동 예를 확인해 보십시오.
<img id='myImg' src='/my/img/link.gif' />
<script type="text/javascript">
$(document).bind('click', function () {
// Add a click-handler to the image.
$('#myImg').bind('click', function (ev) {
var $img = $(ev.target);
var offset = $img.offset();
var x = ev.clientX - offset.left;
var y = ev.clientY - offset.top;
alert('clicked at x: ' + x + ', y: ' + y);
});
});
</script>
위의 내용은 이미지 상자를 기준으로 x와 y를 얻을 수 있지만 마진, 테두리 및 패딩을 정확하게 고려하지는 않습니다.이러한 요소는 실제로는 이미지의 일부가 아니지만 고려해야 할 요소의 일부일 수도 있습니다.
이 경우에도 다음과 같은 방법을 사용해야 합니다.$div.outerWidth(true) - $div.width()
그리고.$div.outerHeight(true) - $div.height()
마진 / 테두리 / 등의 양을 계산합니다.
새 코드는 다음과 같습니다.
<img id='myImg' src='/my/img/link.gif' />
<script type="text/javascript">
$(document).bind('click', function () {
// Add a click-handler to the image.
$('#myImg').bind('click', function (ev) {
var $img = $(ev.target);
var offset = $img.offset(); // Offset from the corner of the page.
var xMargin = ($img.outerWidth() - $img.width()) / 2;
var yMargin = ($img.outerHeight() - $img.height()) / 2;
// Note that the above calculations assume your left margin is
// equal to your right margin, top to bottom, etc. and the same
// for borders.
var x = (ev.clientX + xMargin) - offset.left;
var y = (ev.clientY + yMargin) - offset.top;
alert('clicked at x: ' + x + ', y: ' + y);
});
});
</script>
언급URL : https://stackoverflow.com/questions/2159044/getting-the-x-y-coordinates-of-a-mouse-click-on-an-image-with-jquery
'programing' 카테고리의 다른 글
도커 이미지 컨텐츠를 보는 방법 (0) | 2023.10.01 |
---|---|
jQuery를 사용하여 '어떤' ajax 요청이 완료되는지 탐지하려면 어떻게 해야 합니까? (0) | 2023.10.01 |
C 코드를 사용하여 ifconfig와 동일한 정보를 가져옵니다. (0) | 2023.10.01 |
WordPress 사용자 지정 게시물 유형이 검색 결과에 표시되지 않음 (0) | 2023.10.01 |
Get-Content - 문서에 설명된 대로 작동하지 않을 때까지 기다립니다. (0) | 2023.10.01 |