在javascript中,在onMouseMove的javascript事件處理程序中,如何獲取x,y相對於頁面頂部的鼠標位置?onMouseMove獲取鼠標位置
回答
,如果你可以使用jQuery,然後this將幫助:
<div id="divA" style="width:100px;height:100px;clear:both;"></div>
<span></span><span></span>
<script>
$("#divA").mousemove(function(e){
var pageCoords = "(" + e.pageX + ", " + e.pageY + ")";
var clientCoords = "(" + e.clientX + ", " + e.clientY + ")";
$("span:first").text("(e.pageX, e.pageY) - " + pageCoords);
$("span:last").text("(e.clientX, e.clientY) - " + clientCoords);
});
</script>
這裏是純JavaScript唯一的例子:
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else { // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}
document.Show.MouseX.value = tempX;//MouseX is textbox
document.Show.MouseY.value = tempY;//MouseY is textbox
return true;
}
嗯,JS例子似乎非常類似於http:// www.codelifter.com/main/javascript/capturemouseposition1.html除非沒有方便的評論 – RozzA 2015-06-04 21:49:46
'id =「#divA」'和'$(「divA」)' - 有人在寫這個時候睡着了 – RozzA 2015-06-05 21:56:26
@RozzA感謝您的關注。 – TheVillageIdiot 2015-06-06 10:19:06
特別是隨着鼠標移動事件,火災快速和激烈,其良好的在使用它們之前減少處理程序 -
var whereAt= (function(){
if(window.pageXOffset!= undefined){
return function(ev){
return [ev.clientX+window.pageXOffset,
ev.clientY+window.pageYOffset];
}
}
else return function(){
var ev= window.event,
d= document.documentElement, b= document.body;
return [ev.clientX+d.scrollLeft+ b.scrollLeft,
ev.clientY+d.scrollTop+ b.scrollTop];
}
})()
document.ondblclick = function(e){alert(whereAt(e))};
使用d3.js僅用於查找鼠標座標可能有點矯枉過正,但它們有一個非常有用的功能,稱爲d3.mouse(*container*)
。下面是做你想做的事的例子:
var coordinates = [0,0];
d3.select('html') // Selects the 'html' element
.on('mousemove', function()
{
coordinates = d3.mouse(this); // Gets the mouse coordinates with respect to
// the top of the page (because I selected
// 'html')
});
在上述情況下,x座標將是coordinates[0]
和y座標將是coordinates[1]
。這非常方便,因爲通過與標籤(例如'body'
),類名稱(例如'.class_name'
)或id(例如'#element_id'
)交換'html'
,您可以獲得與您想要的任何容器相關的鼠標座標。
+1,但**公平的警告**:這種方法是有點太滯後用於'onmousemove'。我的項目中已經有了d3.js,所以我嘗試了一下,但對於我的用例來說,這還不夠快。 – elrobis 2015-09-02 19:37:52
這是嘗試和作品在所有瀏覽器:
function getMousePos(e) {
return {x:e.clientX,y:e.clientY};
}
現在你可以在這樣一個事件中使用它:
document.onmousemove=function(e) {
var mousecoords = getMousePos(e);
alert(mousecoords.x);alert(mousecoords.y);
};
的
- 1. OpenGl獲取鼠標位置
- 2. 獲取鼠標位置
- 3. 在window.resize上獲取鼠標位置
- 4. 獲取當前鼠標位置
- 5. 在畫布內獲取鼠標位置
- 6. 如何獲取鼠標位置
- 7. 在Flex Panel上獲取鼠標位置
- 8. C#WebBrowser獲取鼠標點擊位置
- 9. 在div中獲取鼠標位置?
- 10. WPF從鼠標位置獲取視覺
- 11. 在事件中獲取鼠標位置
- 12. 如何用irrlicht獲取鼠標位置?
- 13. 的Java獲取鼠標位置
- 14. Java - Slick2D/lwjgl獲取鼠標位置
- 15. 獲取鼠標位置的QDragEnterEvent
- 16. 用於獲取鼠標位置
- 17. 在鼠標放下期間獲取鼠標位置?
- 18. 根據用戶點擊的位置獲取鼠標位置
- 19. 獲取鼠標單擊位置,在該位置
- 20. 獲取鼠標位置或元素位置
- 21. 鼠標位置()
- 22. 拖動鼠標事件jittery - onmousemove
- 23. 知道了鼠標事件的位置的OnMouseMove在IE 9,Firefox和Chrome
- 24. 如何從鼠標位置獲取已翻譯的座標
- 25. 如何獲取svg和鼠標光標位置正確
- 26. 在鼠標點擊獲取ms圖表中的標記位置
- 27. 在Windows上獲取鼠標光標位置和按鈕狀態
- 28. 獲取鼠標光標位置的windows組件名稱
- 29. 獲取鼠標點擊qt中的標籤位置
- 30. 如何獲得座標相對於鼠標位置的位置?
可能重複[如何獲得jQuery的鼠標位置沒有鼠標 - 事件?](http://stackoverflow.com/questions/4517198/how-to-get-mouse-position-in-jquery-without-mouse-events) – Lucio 2014-10-12 19:56:50