如果可见,jQuery fadeOut兄弟姐妹

时间:2016-12-29 19:54:44

标签: jquery css fadein fadeout

我试图找出如何定位所有siblings并淡出它们,然后逐渐消失被定位的元素。

$('#MyDiv').siblings(':visible').not('h2').fadeOut('slow', function() {
    $('#MyDiv').fadeIn('slow');
});

:visible选择器不起作用,但理论上它应该,对吧?问题是complete事件正在立即运行,因为有一些兄弟已经被隐藏了。

对于某人来说,这应该是一个简单的解决方案......我想我已经盯着这个问题太久了,我错过了一些简单的事情。

1 个答案:

答案 0 :(得分:0)

好的 - 也许尝试不同的方法?在这种情况下,“完整”只会触发一次。

$('#div3').fadeOut(500);
$('#div1').fadeOut(500);

setTimeout(function() {
  $('#div1').siblings(':visible').not('h2')
    .fadeOut(500).promise().done(
      function() {
        $('#div1').fadeIn();
      }
    );
}, 1500);
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>

<body>

  <div id="div1">
    <p>Div1</p>
  </div>
  <div id="div2">
    <p>Div2</p>
  </div>
  <h2>H2</h2>
  <div id="div3">
    <p>Div3</p>
  </div>
  <div id="div4">
    <p>Div4</p>
  </div>

  <script src="https://code.jquery.com/jquery-2.2.4.js"></script>
</body>

</html>