2013-06-24 2 views
0

Я пытаюсь получить местоположение мыши при наведении на изображение в пикселях в верхнем левом углу изображения. В настоящее время я использую атрибуты событий pageX и pageY, но это возвращает значение, большее, чем ширина и высота самого изображения.JavaScript-координаты, показывающие как большую ширину и высоту изображения

var getImgCoord = function(e) { 
    var x = e.pageX, 
     y = e.pageY; 
    console.log(x + ' | ' + y); 
} 
$('.featuredImg').mousemove(function() { 
    getImgCoord(event); 
}); 

Любая помощь была бы принята с благодарностью.

+0

Извинения, верхний левый угол изображения, я редактировал вопрос выше. – tdh108

+0

Вы пробовали 'clientX' и' clientY'? – Teemu

+0

Я сделал, clientX и clientY дали те же результаты. – tdh108

ответ

4

страницаX и страницаY - координаты относительно верхнего левого угла документа не ваше изображение (оно уже говорит об этом).

вам нужно вычесть смещение от вашего элемента:

$('.featuredImg').mousemove(function(e) { 
    var x = e.pageX - $(this).offset().left, 
     y = e.pageY - $(this).offset().top; 
    console.log(x + ' | ' + y); 
}); 
1

http://jsfiddle.net/D5uuA/

var getImgCoord = function(e) { 
    var imageOffset = $(this).offset(); 
    //or $(this).offset(); if you really just want the current element's offset 
    var x = e.pageX - imageOffset.left, 
     y = e.pageY - imageOffset.top; 
    console.log(x + ' | ' + y); 
} 
$('.featuredImg').mousemove(getImgCoord); 
+0

Какова область действия функции getImgCoord? $ (это), вероятно, будет объектом окна (или как бы то ни было текущей глобальной областью для getImgCoord), и поэтому ваш код не будет работать! – hereandnow78

+0

@ hereandnow78 извините, обновленный ответ, работает сейчас! –