2017-04-24 6 views
10

あるとき、私はカーソルタイプ(jQueryのを使用して)取得するには、このコードを使用しています取得:デフォルトのオプションであるとことを意味実際のカーソルタイプが「自動」

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

をしかし、いくつかの要素に、それはautoを出力します(ブラウザはカーソルタイプを決定します)。例えば

私は、ブラウザが実際に(すなわちpointerresize、など)これらの場合に表示されるかを知ることができるようにする必要があり

:link要素(tagNameを= A)のために、それは「自動」を印刷し、 'ポインタ'を表示します。

どのように私は最終的には、特定のブラウザ上に表示されるカーソルのタイプを知ることができますか?言い換えれば、ブラウザがどのカーソルタイプを選択するかをどのようにして知ることができますか?

は、この動作は、どこかに文書化されていますか?それはあなたのコードで指定されていませんでしたので、

+0

あなたはそれがブラウザによって決定されます言うように。 'auto'はCSSの値です。あなたがそれが異なるようにしたいのであれば、なぜcssの要素にカーソル値を与えないのですか? – gforce301

+0

カーソルタイプのデフォルト値はautoです。https://www.w3schools.com/cssref/pr_class_cursor.asp –

+1

エレメントに基づいてカーソルタイプを決定してみませんか?各ブラウザのデフォルトカーソルを持つ要素タイプのテーブルを作成するだけです。他の方法はないと思います。 – Mykybo

答えて

0

ブラウザはautoとしてあなたcursorを決定します。現在のcursorを取得する場合は、検討したい要素ごとにCSSまたはHTMLに明示的に設定する必要があります。

a { 
    cursor: pointer; 
} 

.css('cursor')は、その型を返します。

+0

これは単なる例であり、私はどのタグについても知っておく必要があります。 – OmriSh

+0

これはまさに私の言いたいことです。**任意の**タグを取得したい場合は、**任意の**タグに指定する必要があります。それ以外の場合、ブラウザはデフォルトの 'auto'を使用します。 –

+0

あなたが答えてくれたことは、ブラウザに明示的に何をするかを伝えることです。これは私が望むものではありません。 – OmriSh

1

これは、あなたが現在ホバリングしている要素のためにプラットフォーム固有のデフォルトのカーソルを使用していますdetermined by the user agent (=browser)、です。

汎用カーソル
「自動」
UAは、具体的には、現在のコンテキストに基づいて表示するカーソルを判定するオートは、そうでなければ、テキスト上のテキスト、およびデフォルトとして振る舞います。

したがって、cssでautoに設定されているときにカーソルがどのように表示されるかはわかりません。

html要素がどのカーソル型を受け取って、要素型に基づいて決定できるかを概観する必要があると推測しましたが、私はオンラインで何かを見つけることができませんでした。 autoは自由な統治を提供するので、特定のブラウザがそのカーソルを実際に使用するという保証はなく、どのカーソルタイプを使用するかは保証されません。

これを制御できる唯一のオプションは、カーソルを明示的に特定のタイプに設定することです。 (また、私はあなたがこれを必要とする詳細なユースケースに興味があります)。

+0

私が興味を持っているのは、ブラウザがどのように決定するかです。私はサードパーティ製のutilクラスを書いていますが、サイトのCSSを変更したくありません。 – OmriSh

+0

私はあなたができないと確信しています。ブラウザは何をすべきかを決定し、その決定を開示しません。 – Christoph

+0

@OmriShそれも私が見つけたものです。内容に応じて、複数の異なるカーソルを持つ要素があります。例えば、テキストの上に 'text'、空の領域に' default'があります。あなたは要素を見て推測し、疑問があれば 'default'とすることができます。それが今私がやることです。 – ygoe