停止图像幻灯片上的图像闪烁

时间:2018-02-24 16:23:31

标签: javascript html css

我正在创建一个图片幻灯片,但是,我遇到了一个问题。我每次点击移动幻灯片时下一个图像都会闪烁。我如何避免这种情况我希望它能够顺利滑入。

这是我的代码:



jQuery(document).ready(function($) {

  $('#checkbox').change(function() {
    setInterval(function() {
      moveRight();
    }, 3000);
  });

  var slideCount = $('#slider ul li').length;
  var slideWidth = $('#slider ul li').width();
  var sliderUlWidth = slideCount * slideWidth;

  $('#slider').css({
    width: parseInt(slideWidth) * 3 +"px",
  });

  $('#slider ul').css({
    width: sliderUlWidth
  });

  $('#slider ul li:last-child').prependTo('#slider ul');

  function moveLeft() {
    $('#slider ul').animate({
      left: +slideWidth
    }, 200, function() {
      $('#slider ul li:last-child').prependTo('#slider ul');
      $('#slider ul').css('left', '');
    });
  };

  function moveRight() {
    $('#slider ul').animate({
      left: -slideWidth
    }, 200, function() {
      $('#slider ul li:first-child').appendTo('#slider ul');
      $('#slider ul').css('left', '');
    });
  };

  $('a.control_prev').click(function() {
    moveLeft();
  });

  $('a.control_next').click(function() {
    moveRight();
  });

});

@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,600);
html {
  border-top: 5px solid #fff;
  color: #2a2a2a;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: 'Open Sans';
}

h1 {
  color: #fff;
  text-align: center;
  font-weight: 300;
}

#slider {
  position: relative;
  overflow: hidden;
  margin: 20px auto 0 auto;
  border-radius: 4px;
}

#slider ul {
  position: relative;
  margin: 0;
  padding: 0;
  height: auto;
  list-style: none;
}
#slider ul li img{
  max-width:100%;
  line-height: 0;
}
#slider ul li {
  position: relative;
  display: block;
  float: left;
  margin: 0;
  padding: 0;
  width: 33.33%;
  height: auto;
  background: #ccc;
  text-align: center;
  line-height: 0;
}

a.control_prev,
a.control_next {
  position: absolute;
  z-index: 999;
  padding: 0% 0%;
  background: #2a2a2a;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 18px;
  opacity: 0.1;
  cursor: pointer;
  top: 0;
  display: block;
  width: 33.33%;
  height: 100%;
}

a.control_prev:hover,
a.control_next:hover {
  -webkit-transition: all 0.2s ease;
}

a.control_prev {}

a.control_next {
  right: 0;
}

.slider_option {
  position: relative;
  margin: 10px auto;
  width: 160px;
  font-size: 18px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Very Simple Slider</title>



  <link rel="stylesheet" href="css/style.css">


</head>

<body>
  <h1>&nbsp;</h1>
  <div id="slider">
    <a href="#" class="control_next"></a>
    <a href="#" class="control_prev"></a>
    <ul>
      <li><img src="https://orig00.deviantart.net/e3bb/f/2012/155/0/c/naruto_unleashed_by_sketch_gfx-d529cho.png"></li>
      <li><img src="https://assets.rbl.ms/6450955/980x.jpg"></li>
      <li><img src="http://tampascene.com/images/new-images/parks-weedonisland.jpg"></li>
    </ul>
  </div>

  <div class="slider_option"> </div>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>



  <script src="js/index.js"></script>




</body>

</html>
&#13;
&#13;
&#13;

如果你有任何指南或指示,我不知道如何做到这一点它会很好如果这个问题需要改进,那么只是试图告诉我而不仅仅是低估而我只有13年而且不会受到伤害仍然学习提前谢谢你。

1 个答案:

答案 0 :(得分:0)

您可以通过更改所有prependToappendTo语句淡入图片:

$('#slider ul li:last-child').prependTo('#slider ul');

变为

$('#slider ul li:last-child').hide().prependTo('#slider ul').fadeIn(500);

这里是包含更新代码的jsfiddle。您可以将fadeIn(x)中的数字更改为您喜欢的x毫秒数。