您页面上的 HTML 太复杂(您似乎患有 divitis),无法直接回答您需要用它做什么,但在一般意义上,只要您有某种方式将“标题”办公室 div 与个人 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
对多个元素使用相同的。