【发布时间】:2016-12-03 12:05:19
【问题描述】:
我正在建立一个网站,该网站有一个带有一些图像变化的超大屏幕。我试图在互联网上寻找答案,但我找不到任何答案。另外,我知道答案会很简单,但我现在看不到。
问题是第一个图像交换顺利,第一个图像淡出,第二个淡入。但在此之后它就坏了。每次下一个图像交换都是这样的:当前图像开始淡出,但第二个同时淡入,这意味着有一段时间同时显示两个图像,并且它们下方的整个页面被向下推然后向上推。
$(document).ready(function(){
window.setInterval(sliduh1, 3000);
var slide = $('.activeSlide');
});
function sliduh1() {
var currentSlide = $('.activeSlide');
var nextSlide = currentSlide.next();
if (nextSlide.length === 0 ) {
nextSlide = $('.slide').first();
}
currentSlide.fadeOut(600).removeClass('activeSlide');
nextSlide.fadeIn(600).addClass('activeSlide');
}
.slider1 img {
position: relative;
display: block;
margin-left: auto;
margin-right: auto;
width: 650px;
}
.slide {
display: none;
}
.activeSlide {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slider1">
<div class="slide activeSlide">
<img src="imgs/mobile1.png">
</div>
<div class="slide">
<img src="imgs/blueprints1.jpg">
</div>
<div class="slide">
<img src="imgs/tools1.png">
</div>
<div class="slide">
<img src="imgs/sourceCode1.png">
</div>
<div class="slide">
<img src="imgs/vr1.jpg">
</div>
<div class="slide">
<img src="imgs/market1.png">
</div>
</div>
【问题讨论】:
-
当你调用这个函数 sliduh1()。你能做一个小提琴吗?
-
我忘了在代码中显示函数用法。它现在添加到主帖中。
-
预期的行为是什么?图像同时淡入/淡出或仅在活动图像淡出后淡入下一张图像?如果是前者,则需要将图像位置设置为绝对位置。如果是后者,则需要使用完整的动画回调:
currentSlide.fadeOut(600,function(){ $(this).removeClass('activeSlide'); nextSlide.fadeIn(600).addClass('activeSlide'); }); -
请注意,使用间隔是不好的,因为您不能依赖动画持续时间和间隔回调延迟。通常,最好在所有动画完成后递归地使用超时调用
-
预期的行为是后者,在第一张图像淡出之后,下一张淡入。我正在寻找一个图片库,其中只有一张图片会不断地换成另一张图片。
标签: javascript jquery html css image