如何在元素之间淡入淡出?

问题描述 投票:0回答:1

[更改单击元素时如何淡入和淡出。我有五个元素,所有元素都是隐藏的,除非您单击前进或上一步按钮。我正在尝试找到一种方法,以便当您单击“下一步”时,当前显示的元素逐渐淡出,而下一项逐渐淡入。

这是我的代码:

HTML:

<ul class="pagnation">
<li><div class="data-item">
sdf
</div></li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>

JS:

$('.pagnation li:gt(0)').hide();

$('.prev').click(function() {
var first = $('.pagnation').children('li:visible:first');
first.prevAll(':lt(1)').show().fadeIn( "slow" );
first.prev().nextAll().hide().fadeOut( "slow" );
});

$('.next').click(function() {
var last = $('.pagnation').children('li:visible:last');
last.nextAll(':lt(1)').show().fadeIn( "slow" );
last.next().prevAll().hide().fadeOut( "slow" );
});
jquery fadein fadeout
1个回答
0
投票

您可以将fadeToggle用于fadeInfadeOut功能。请尝试以下代码-

$('.prev, .next').click(function() {
  var index = $('.pagination').find('li:visible').index();
  if ($(this).hasClass('prev')) {
    index = index == 0 ? 0 : (index - 1);
  } else {
    var totalLiElem = $('.pagination').find('li').length
    index = (index == (totalLiElem - 1)) ? (totalLiElem - 1) : (index + 1);
  }
  $('.pagination').find('li:visible').fadeToggle("slow", "linear");;
  $('.pagination').find('li:eq(' + index + ')').fadeToggle("slow", "linear");
});
ul,
li {
  display: inline-block;
}

ul li:not(:first-child) {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="prev">Previous</button>
<ul class="pagination">
  <li>
    <div class="data-item">
      sdf
    </div>
  </li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
<button class="next">Next</button>
© www.soinside.com 2019 - 2024. All rights reserved.