类型为'auto'时获取实际光标

时间:2017-04-24 13:22:22

标签: javascript css browser cross-browser cursor

我正在使用此代码获取游标类型(使用jQuery):

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

但是在某些元素上它打印auto(这是默认选项,意味着浏览器确定光标类型)。

我需要能够知道浏览器在这些情况下实际显示的内容(例如pointerresize等。)

例如:对于链接元素(tagName = A),它会打印“auto”,但会显示“指针”。

如何知道最终会在特定浏览器上显示哪种光标类型?换句话说,如何判断浏览器将选择哪种光标类型?

这种行为是否记录在某处?

2 个答案:

答案 0 :(得分:1)

这是determined by the user agent (=browser),它使用特定于平台的默认光标作为您当前悬停的元素。

  

通用游标
  的 '自动'
  UA根据当前上下文确定要显示的光标,具体为:auto表现为文本上的文本,否则为默认值。

因此,在css中将光标设置为auto时,您无法确定光标的外观。

我猜测应该有一个概述,哪个html元素接收哪个光标类型,所以你可以根据元素类型决定,但我在网上找不到任何东西。此外,无法保证某个浏览器实际上会使用该游标,因为auto为他们提供了免费的统治,这是一种使用哪种游标类型。

控制此操作的唯一选择是明确地将光标设置为特定类型。 (另外,我会对您需要的详细用例感兴趣。)

答案 1 :(得分:0)

浏览器会将您的cursor确定为auto,因为您的代码从未指定过它。如果你想得到当前的cursor,你必须明确地为你要检查的每个元素在CSS或HTML中设置它。

a {
   cursor: pointer;
}

指定后,.css('cursor')将返回其类型。