2013-06-24 60 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

pageX和pageY是相對於文檔左上角的座標而不是您的圖像本身(名稱已經說明了它)。

你需要從你的元素減去偏移:

$('.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函數的範圍是什麼? $(this)可能是窗口對象(或者任何當前的getImgCoord全局作用域),因此你的代碼不會工作! – hereandnow78

+0

@ hereandnow78對不起,已更新的答案,現在工作! –

相關問題