使用 jQuery 减少其他元素的不透明度 div

Using jQuery to reduce opacity of other elements with a div

我有一块带字幕的图片,我正在使用 slideToggle 来显示和隐藏字幕:

    $('.imageholder').hover(function() {
    var $desc = $(this).next();
    $('.description').not($desc).slideUp('fast');
    $(this).next().slideToggle("fast");
  });

工作Fiddle

单击图片时,标题会显示出来,但我想同时降低包含 div(类似于 this)中其他图片的不透明度。会很感激一些帮助。谢谢。

您可以尝试添加 $(this).siblings().css({opacity: 0.5}) 吗,但我不认为您要在此处寻找不透明度,它更像是黑白滤镜而不是 alpha 滤镜。

您可以像这样从 jQuery 选择器中排除当前元素:

$('.imageholder').not(this)

这里是 fiddle 显示淡出的图像(您必须在鼠标移开时将它们淡出):https://jsfiddle.net/euphemus/bdfv9vg8/3/

使用悬停功能,您可以添加一个功能,当您没有悬停元素时,将不透明度恢复为 1。 (此处:https://api.jquery.com/hover/

你可以试试这个:

 $('.imageholder').hover(function() {
   var $desc = $(this).next();
   $('.description').not($desc).slideUp('fast');
   $(this).next().slideToggle("fast");
   $(this).siblings('.imageholder').css({opacity: 0.2});
 },function(){
   $(this).siblings().css({opacity: 1});
 });
.description {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="imageswrapper">
</div>
<div class="imageholder">
  <img class="img" src="http://placehold.it/350x150" alt="Placeholder">
</div>
<div class="description">
  <p>Text</p>
</div>
<div class="imageholder">
  <img class="img" src="http://placehold.it/350x150" alt="Placeholder">
</div>
<div class="description">
  <p>Text</p>
</div>
<div class="imageholder">
  <img class="img" src="http://placehold.it/350x150" alt="Placeholder">
</div>
<div class="description">
  <p>Text</p>
</div>
</div>