2017-08-29 59 views
0

有沒有什麼方法可以確定當鼠標移動到沒有css光標樣式設置的標準html元素上時,鼠標的樣式或圖標?例如,鼠標圖標位於標準html按鈕上時,會從箭頭變爲手形,或者當它位於標準文本輸入上時,會從箭頭變爲文本輸入圖標。有什麼辦法在標準html元素上獲取鼠標/光標圖標

此代碼僅適用於元素具有style.cursor設置。

document.addEventListener("mousemove", function(event) { 
    //console.log("mouse is down") 
    var x = event.clientX, y = event.clientY, 
    elementMouseIsOver = document.elementFromPoint(x, y); 
    console.log("element="+elementMouseIsOver+" cursor="+elementMouseIsOver.style.cursor) 
    }) 

是否有另一種方法來獲得標準html項目的鼠標圖標?

+0

您是否嘗試過的getComputedStyle'()'? (從您的mousemove事件偵聽器中調用,以便光標實際上是您當時想知道的形狀。) – nnnnnn

+0

這實際上很棒!非常感謝。 – techdog

回答

0

一個技巧可能是這樣的:

var currentCursor = undefined; 
$('*').mouseenter(function(){ 
    currentCursor = $(this).css('cursor') ; 
}); 

使用或不使用JQuery是:

var currentCursor = undefined; 
addEventListener('mouseenter', function(e) { 
    if (e.target instanceof HTMLAnchorElement) { 
     currentCursor = e.target.style.cursor; 
    } 
}); 
+0

*「除非另有一個框架/庫的另一個標籤也包含在內,否則預計會得到一個純粹的JavaScript答案。」* - 從懸停時顯示的[info](https://stackoverflow.com/tags/javascript/info)將鼠標懸停在「javascript」標籤上。 (但是如果你覺得你必須推薦一個依賴於圖書館的解決方案,至少應該提及哪個庫。) – nnnnnn