我正在创建一个图片幻灯片,但是,我遇到了一个问题。我每次点击移动幻灯片时下一个图像都会闪烁。我如何避免这种情况我希望它能够顺利滑入。
这是我的代码:
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> </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年而且不会受到伤害仍然学习提前谢谢你。
答案 0 :(得分:0)
您可以通过更改所有prependTo
和appendTo
语句淡入图片:
$('#slider ul li:last-child').prependTo('#slider ul');
变为
$('#slider ul li:last-child').hide().prependTo('#slider ul').fadeIn(500);
这里是包含更新代码的jsfiddle。您可以将fadeIn(x)
中的数字更改为您喜欢的x
毫秒数。