Chromeでシミュレートするコードを探していましたmouseover
が、「マウスオーバー」リスナーが起動されても、CSS の「ホバー」宣言が設定されていません!
私もやってみました:
//Called within mouseover listener
theElement.classList.add("hover");
しかし、要素をそのhover
宣言で宣言されているものに変更するものは何もないようです。
これは可能ですか?
Chromeでシミュレートするコードを探していましたmouseover
が、「マウスオーバー」リスナーが起動されても、CSS の「ホバー」宣言が設定されていません!
私もやってみました:
//Called within mouseover listener
theElement.classList.add("hover");
しかし、要素をそのhover
宣言で宣言されているものに変更するものは何もないようです。
これは可能ですか?
できません。これは信頼できるイベントではありません。
ユーザー インタラクションの結果として、または DOM への変更の直接的な結果として、ユーザー エージェントによって生成されるイベントは、DocumentEvent.createEvent を介してスクリプトによって生成されるイベントには与えられない特権を持つユーザー エージェントによって信頼されます。 ("Event") メソッド、Event.initEvent() メソッドを使用して変更、または EventTarget.dispatchEvent() メソッドを介してディスパッチされます。信頼できるイベントの isTrusted 属性の値は true ですが、信頼できないイベントの isTrusted 属性の値は false です。
クリックまたは DOMActivate イベントを除いて、ほとんどの信頼できないイベントはデフォルト アクションをトリガーするべきではありません。
クラスを追加し、それをマウスオーバー/マウスアウト イベントで手動で追加/削除する必要があります。
この場合、私が通常行うことは、javascript を使用してクラスを追加し、このクラスに同じCSS
ものを添付することです。:hover
使ってみて
theElement.addEventListener('onmouseover',
function(){ theElement.className += ' hovered' });
または古いブラウザの場合:
theElement.onmouseover = function(){theElement.className += ' hovered'};
もちろんonmouseout
、要素を離れるときに「ホバーされた」クラスを削除するために使用する必要があります...