2014-06-27 80 views
4

我想要獲取鼠標指針位置mousedownmouseup事件。有一個名爲的測試,我想在div區域內發生mousedown和mouseup時發現位置。我將div作爲我的表面,所以mousedown和mouseup位置應該與div相關。我在這個div裏有一個pdf,所以我得到的座標將幫助我突出顯示pdf。獲取鼠標指針相對於某些div的座標

我試過了,但它不能正常工作。

function getPosition(element) { 
    var xPosition = 0; 
    var yPosition = 0; 
    while (element) { 
     xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft); 
     yPosition += (element.offsetTop - element.scrollTop + element.clientTop); 
     element = element.offsetParent; 
    } 
    return { x: xPosition, y: yPosition }; 
} 
$("#test").mousedown(function(e){ 
    var parentPosition = getPosition(e.currentTarget); 
    startX = e.clientX - parentPosition.x; 
    startY = (e.clientY - parentPosition.y)*2.5; 
}); 
$("#test").mouseup(function(e){ 
    var parentPosition = getPosition(e.currentTarget); 
    endX = e.clientX - parentPosition.x; 
    endY= (e.clientY - parentPosition.y)*2.5; 
}); 
+0

getPosition的代碼?你有沒有使用位置或抵消? – Sid

+0

doesnot這對你有幫助嗎? http://stackoverflow.com/a/4517215/903790 – doniyor

+0

相對於div你的意思是,如果你點擊div的左上角你會得到x = 0,y = 0,如果你點擊底部右角你會得到x = div寬度,y = div高度 –

回答

1

鼠標相對於div中的座標被存儲在事件對象

$("#someDiv").click(function(e){ 
    var x = e.offsetX; 
    var y = e.offsetY; 
}); 

所以的offsetXoffsetY屬性,如果你有100的寬度和高度的一個div 50,並在div的中心精確地點擊然後

X = 50,Y = 25

JSFiddle Demo

+0

我想要mouseup和mousedown。兩者都應用了ur代碼,但在mousedown中,它給出了未定義的代碼。 – Dhwani

+0

@ Dhwani,它對任何鼠標事件都是一樣的。看到我剛剛添加的演示 –

+0

我想要X和Y的開始和結束。 – Dhwani

相關問題