ページのHTMLは複雑すぎて(divitisの場合があるようです)、それを使って何をする必要があるかを直接答えることはできませんが、一般的な意味では、「個々の人のdivと一緒に「heading」オフィスdivを作成すると、フェード効果を追加するのはかなり簡単です。たとえばdata-
、見出しに属性を指定して、関連するすべての人のdivが持つクラスを指定できます。たとえば、次のようになります。
<div class="office" data-office="Stockholm">Stockholm Office</div>
<div class="office" data-office="Denmark">Denmark Office</div>
<div class="office" data-office="LA">Los Angeles Office</div>
<div class="person Stockholm">Stockholm<br>Amanda Atkins</div>
<div class="person Stockholm">Stockholm<br>Benjamin Bovington</div>
<div class="person Denmark">Denmark<br>Carolyn Carson</div>
<div class="person LA">Los Angeles<br>Dave Duncan</div>
<div class="person LA">Los Angeles<br>Evelyn Edwards</div>
次に、属性を使用して関連付けられた人を検索するクラス「office」のdivにホバーハンドラーを追加しdata-office
ます。または、場合によっては、関連付けられていない人を検索して不透明度を下げます。
$(document).ready(function() {
$(".office").hover(function() {
$(".person").not("." + $(this).attr("data-office")).fadeTo(100, 0.5);
}, function() {
$(".person").not("." + $(this).attr("data-office")).fadeTo(100, 1);
});
});
デモ: http: //jsfiddle.net/EHrcb/
(「person」divもdata-
属性を使用できた可能性がありますが、クラスで選択する方が簡単なので、それを使用しました。)
同じ概念を使用して各オフィスに適切なマップを表示できると思いますが、不透明度を設定するのではなく、可視性などを使用または設定.hide()
します。.show()
既存のhtmlは無効であることに注意してくださいid
。複数の要素に同じものを使用することは想定されていません。