Изчисляване на щракнато отместване на изображение

Възможен дубликат:
получаване на X/Y координатите на щракване с мишката върху изображение с jQuery

Искам да изчисля щракната позиция на изображение, да кажем, че това ще бъде пример:

въведете описание на изображението тук

И ако щракна върху него някъде, искам да покажа предупреждение с X/Y позицията на щракнатата област върху изображението, има пиксели на изображенията, така че трябва да показва x пикселно отместване и y пикселно отместване.

Възможно ли е това да се направи с Javascript? Всякакви примери ще бъдат оценени.


person Scott    schedule 21.07.2012    source източник


Отговори (2)


Използвайки JQuery, използвайте стойностите на pageX и pageY на събитието, към което изваждате отместването на елемента.

http://jsfiddle.net/BramVanroy/D63KS/1/

$(document).ready(function(){
    $('img').mousedown(function(e){
        var offset = {
            x: e.pageX - $(this).offset().left,
            y: e.pageY - $(this).offset().top
        }
            $('#info').html('{'+offset.x+'; '+offset.y+'}');
    });
});​
person Bali Balo    schedule 21.07.2012
comment
Може да искате да използвате валидно изображение. - person Bram Vanroy; 21.07.2012
comment
Валидно изображение? Използвах този от неговия въпрос. - person Bali Balo; 21.07.2012
comment
Е, това е странно: не щракнах върху изображението му преди и отидох право на вашата цигулка. Показа ми „счупено изображение“, въпреки че виждам връзката му. Съжалявам за коментара тогава, моя грешка. - person Bram Vanroy; 21.07.2012
comment
@BaliBalo Работи добре, но възможно ли е едно пикселно измерение да бъде 2 ширина / 2 височина вместо това, ако е 1/1 и след това да го изчислите? - person Scott; 21.07.2012
comment
@Scott Разбира се, просто разделете на 2 стойностите. x: (e.pageX - $(this).offset().left) / 2 - person Bali Balo; 21.07.2012

Можете да направите нещо подобно, за да получите x и y, където 'theimage' е идентификаторът на вашето изображение

$("#theimage").live("click",function(e){
e.preventDefault();
    var x = e.pageX - $(this).offset().left;
    var y = e.pageY - $(this).offset().top;


});
person Joseph Rajeev Motha    schedule 21.07.2012