javascript - Jquery图像 slider 图像下降并淡出

标签 javascript jquery

我在 Jquery 中创建了一个图像 slider ,当我单击前进或后退按钮移动图像时,必须更改的图像会下降,然后淡出。就像一个小波动。为什么会出现这种情况? JSfiddle 链接 - https://jsfiddle.net/76xjmfjo/2/

<小时/>

HTML

<div class="container">
    <img class="back" src="http://placehold.it/50x20/000000"></img>

    <div class="slide-container">
        <div class="slide">
            <img src="http://placehold.it/940x350">
        </div>

        <div class="slide ">
            <img src="http://placehold.it/940x350">
        </div>

        <div class="slide">
            <img src="http://placehold.it/940x350">
        </div>

    </div>
    <img class="forward" src="http://placehold.it/50x20/000000"></img>
</div>
<小时/>

CSS

*{
    margin: 0;
    padding: 0;
}

.container{
    width: 980px;
    margin:  0 auto;
}

.slide-container{
    position: relative;
    margin : 0 auto;
    width: 958px;
    height: 368px;

}
.slide{
    width: 940px;
    position: absolute;
    padding: 4px;
    border: 5px solid black ;
    z-index: 1;
}

.active{
    position: relative;
}

.back,.forward{
    top: 150px;
    position:absolute;
    z-index: 10000;
    cursor: pointer;

}

.forward{
    left: 950px;
}
<小时/>

jQUERY

$(document).ready(function () {

  var speed = 500;

  //showing the first image (adding class active)
  $('.slide').first().addClass('active');
  $('.slide').hide();
  $('.active').show();

  //assigning events for the forward and backward buttons
  $('.forward').on('click', function () {
    nextSlide();
  });
  $('.back').on('click', function () {
    prevSlide();
  });

  //next Slide function
  function nextSlide() {
    $('.active').removeClass('active').addClass('oldActive');
    if ($('.oldActive').is(':last-child')) {
      $('.oldActive').removeClass('oldActive');
      $('.slide').first().addClass('active');
    } 
    else {
      $('.oldActive').next().addClass('active');
    }
    $('.oldActive').removeClass('oldActive');
    $('.slide').fadeOut(speed);
    $('.active').fadeIn(speed);
  }

  //Previous slide function
  function prevSlide() {
    $('.active').removeClass('active').addClass('oldActive');
    if ($('.oldActive').is(':first-child')) {
      $('.oldActive').removeClass('oldActive');
      $('.slide').last().addClass('active');
    } 
    else {
      $('.oldActive').prev().addClass('active');
    }
    $('.oldActive').removeClass('oldActive');
    $('.slide').fadeOut(500);
    $('.active').fadeIn(500);
  }

});

最佳答案

只需在 $('.slide') 的完整功能上淡入 $('.active') 即可;

$('.slide').fadeOut(speed, function(){
    $('.active').fadeIn(speed);
});

关于javascript - Jquery图像 slider 图像下降并淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697833/

相关文章:

javascript - UglifyJS 改变代码行为

jQuery 在链接悬停时显示隐藏的 div

javascript - Highcharts 在 float 中创建太多值

javascript - 如何通过 Bootstrap 日期时间选择器使用今天和明天按钮?

javascript - 如何在 iframe 中添加包含 jquery 脚本的 html 页面的结果

jQuery 验证插件 : How to validate empty fields?

javascript - 如何使用Java脚本委托(delegate),在点击事件中使用每个函数值?

javascript - buster.js/sinon 有类似 `jasmine.any()` 的东西吗?

javascript - canvas getImageData 返回太多像素

javascript - JS。如何用字符串表示的另一个元素/文本替换 html 元素?