Подтвердить что ты не робот

Получить фактический курсор, если тип "авто"

Я использую этот код для получения типа курсора (используя jQuery):

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

Но на некоторых элементах он печатает auto (который является параметром по умолчанию и означает, что браузер определяет тип курсора).

Мне нужно знать, что браузер отображает в этих случаях (т.е. pointer, resize и т.д.)

Например: для элемента ссылки (tagName = A) он печатает "auto", но отображает "указатель".

Как узнать, какой тип курсора будет отображаться в конечном браузере? Другими словами, как я могу определить, какой тип курсора выбирает браузер?

Является ли это поведение документированным где-то?

4b9b3361

Ответ 1

Это определяемый пользовательским агентом (= браузером), в котором используется определенный по умолчанию курсор по умолчанию для элемента, который вы сейчас висите.

курсоры общего назначения
'авто'
UA определяет курсор для отображения на основе текущего контекста, в частности: auto ведет себя как текст поверх текста, а по умолчанию - по умолчанию.

Таким образом, вы не можете определить, как будет выглядеть курсор, когда он установлен в auto в css.

Я предположил, что должен быть обзор, какой элемент html получает тот тип курсора, который вы могли бы просто решить, основываясь на типе элемента, но я ничего не смог найти в Интернете. Кроме того, нет никакой гарантии, что определенный браузер действительно будет использовать этот курсор, поскольку auto предоставляет им свободное владение, какой тип курсора использовать.

Единственная возможность иметь контроль над этим - явно установить курсор на определенный тип. (Кроме того, меня будет интересовать подробный вариант использования, когда вам это нужно).

Ответ 2

Браузер определяет ваш cursor как auto, потому что он никогда не указывался вашим кодом. Если вы хотите получить текущий cursor, вам нужно будет установить его в своем CSS или HTML явно для каждого элемента, который вы хотите изучить.

a {
   cursor: pointer;
}

После указания его .css('cursor') вернет свой тип.