我已经尝试过但未能使其正常工作。基本上我试图得到它,以便当你将鼠标悬停在一个div上时,它应该将兄弟的不透明度更改为具有class="receiver"
的0.5。
如果您看到此jsFiddle,则会有2个带有class="outerwrapper"
的div,并且都包含2个div hover
和receiver
的div。当您将鼠标悬停在类hover
的div上时,receiver
的不透明度应设置为0.5,但只能设置为同一div(外部包装器)内的一个。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:5)
你没有需要为此使用jQuery或JavaScript(尽管你可以 1 ),CSS非常有能力大多数浏览器实现相同的最终结果:
.hover:hover + .receiver {
opacity: 0.5;
}
而且,即使使用'only'CSS,在现代/兼容的浏览器中,也可以使用淡入淡出过渡(或严格来说,转换不透明度):
.receiver {
width: 50px;
height: 50px;
background-color: blue;
opacity: 1;
-webkit-transition: opacity 1s linear;
-o-transition: opacity 1s linear;
-ms-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
transition: opacity 1s linear;
}
.hover:hover + .receiver {
opacity: 0.5;
-webkit-transition: opacity 1s linear;
-o-transition: opacity 1s linear;
-ms-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
transition: opacity 1s linear;
}
答案 1 :(得分:3)
这样的事情可以做到:http://jsfiddle.net/UzxPJ/3/
$(function(){
$(".hover").hover(
function(){
$(this).siblings(".receiver").css("opacity", 0.5);
},
function(){
$(this).siblings(".receiver").css("opacity", 1);
}
);
});
<强>参考强>
.siblings()
- 获取元素的兄弟姐妹 - http://api.jquery.com/siblings/
.hover()
- 抓住mouseover / mouseout事件 - http://api.jquery.com/hover/
答案 2 :(得分:2)
$('.hover').hover(function() {
$(this).next('.receiver').css('opacity', 0.5);
}, function() {
$(this).next('.receiver').css('opacity', 1.0);
});
(如果.siblings
不一定是下一个元素,请使用.nextAll
或.receiver
答案 3 :(得分:0)
这有效:
$(document).ready(function() {
$('.hover').hover(function() {
var $parent = $(this).parent('.outerwrapper');
$parent.find('.receiver').css({ opacity : 0.5 });
}, function() {
var $parent = $(this).parent('.outerwrapper');
$parent.find('.receiver').css({ opacity : 1 });
});
});