2011-09-09 5 views
10

ホバー状態をリモートに適用するには、別のオブジェクトをホバーします。しかし、私はホバリングしているアイテムにDOM関係を持たせるのではなく、ホバーをアクティブにしたオブジェクトに名前を付けるとします。適用方法:要素にカーソルを合わせる

<style> 
img:hover {border: thin red solid;} 
</style> 

<li id="hover-over-me">Dogs</li> 
<img src="dog.jpg" /> 

私はあなたがリモートで(すなわち独立し、それを実際に推移している)要素にホバー擬似クラスの効果を適用することができますjavascriptやjqueryの方法を発見していません。これを行う方法はありますか?

http://jsfiddle.net/tFSWt/

:関係はCSSで確立することができるものであれば、

答えて

1

、1つの要素だけで、他の上でそれをトリガすることができます兄弟としての例:

祖先/子孫として0
<span>Sibling </span><img src = "http://dummyimage.com/120x90/f00/fff.png&text=my+image" /> 

img:hover { border: 2px dashed blue; } 
span:hover + img { border: 2px dashed blue; } 

例:

<span>Parent 
    <img src = "http://dummyimage.com/120x90/f00/fff.png&text=my+image" /> 
</span> 

img:hover { border: 2px dashed blue; } 
span:hover img { border: 2px dashed blue; } 

そうでなければ、関連する要素を選択し、インラインスタイリングによって、またはそのクラスを追加することにより、いずれかの上にスタイルを設定するためにJavaScriptに依存する必要があります適切なスタイルを提供します。

+2

私は私のqへの短い答えは 'あなたができない'と思いますか? :p – Damon

+0

@Damon:JavaScriptから ':hover' CSS擬似セレクタを起動させることを意味するなら、残念ながらそれはできません。しかし、JavaScriptでマウスイベントのハンドラを定義してトリガすることはできます。 – user113716

+0

ええ、それは私が意味するものです。私はクラスを追加/削除することについて知っていますが、もっと簡単な方法でそれをやりたいと思っていました。 – Damon

3

http://sandbox.phpcode.eu/g/3304b

あなたが特にCSS :hover擬似セレクターを意味する場合
<style> 
img:hover,img.hovered {border: 5px red solid;} 
</style> 
<ul> 
    <li id="hover-over-me">Dogs</li> 
</ul> 
<img src="http://4.bp.blogspot.com/_7VyEDKFMA2U/TOX9ZL7KRPI/AAAAAAAAACM/-XSoYjePBPk/s1600/cute-puppy-dog-wallpapers.jpg" /> 
<script> 
$("li").mouseenter(function(){ 
    $("img").addClass('hovered'); 
}); 

$("li").mouseout(function(){ 
    $("img").removeClass('hovered'); 
}); 


</script> 
+2

これは動作しません:http://jsfiddle.net/ekqCC/1/ –

+3

これはCSSホバーをトリガーしません。 – user113716

+2

なぜ人々はこれを投票していますか? –