我正在使用jQuery bxSlider淡化幻灯片中的元素。 我想要做的是使用onAfterSlide:function()为每张幻灯片上的元素设置动画(淡入)。 它在1to5幻灯片上动画,但它不会仅在最后一张幻灯片上制作动画(淡入)。
这是代码。有人可以帮忙吗?
<script type="text/javascript">
$(function(){
var slider = $('#slider1').bxSlider({
controls: true,
duration: 2000,
easing: 'easeInOutQuart',
onAfterSlide: function(currentSlide){
if(currentSlide==0){
$("#block").fadeIn("slow");
}else{
$("#block").hide();
}
if(currentSlide==1){
$("#block2").fadeIn("slow");
}else{
$("#block2").hide();
}
if(currentSlide==2){
$("#block3").fadeIn("slow");
}else{
$("#block3").hide();
}
if(currentSlide==3){
$("#block4").fadeIn("slow");
}else{
$("#block4").hide();
}
if(currentSlide==4){
$("#block5").fadeIn("slow");
}else{
$("#block5").hide();
}
if(currentSlide==5){
$("#block6").fadeIn("slow");
}else{
$("#block6").hide();
}
}
});
$('.thumbs a').click(function(){
var thumbIndex = $('.thumbs a').index(this);
slider.goToSlide(thumbIndex);
$('.thumbs a').removeClass('pager-active');
$(this).addClass('pager-active');
return false;
});
$('.thumbs a:first').addClass('pager-active');
});
</script>
<ul id="slider1">
<li class="slider1-1">
<div id="block" style="background-color: red; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
<li class="slider1-2">
<div id="block2" style="background-color: white; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
<li class="slider1-3">
<div id="block3" style="background-color: black; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
<li class="slider1-4">
<div id="block4" style="background-color: black; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
<li class="slider1-5">
<div id="block5" style="background-color: black; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
<li class="slider1-6">
<div id="block6" style="background-color: #FFF; width: 500px; height: 300px; position: absolute; top: 70px; left:100px;">
</div>
</li>
</ul>
<div class="thumbs">
<a href=""><img src="img/1.jpg" width="50" height="50" /></a>
<a href=""><img src="img/2.jpg" width="50" height="50" /></a>
<a href=""><img src="img/3.jpg" width="50" height="50" /></a>
<a href=""><img src="img/4.jpg" width="50" height="50" /></a>
<a href=""><img src="img/5.jpg" width="50" height="50" /></a>
<a href=""><img src="img/6.jpg" width="50" height="50" /></a>
</div>
答案 0 :(得分:0)
您正在隐藏控件。而不是hide
使用fadeOut
。 hide
设置display: none
,其中fadeOut
将不透明度设置为零,这与fadeIn
希望这会对你有所帮助。
答案 1 :(得分:0)
由于你没有指定mode:fade,bxSlider默认为水平,而你的fadeIn javascript可能会覆盖它,bxSlider复制水平模式的第一张和最后一张幻灯片,以使转换顺利进行。这意味着你的页面最终会有两个“块”ID和两个“block6”ID,这些ID会破坏javascript,因为你只应该拥有特定ID的实例。我通过使用类名来修改滑块设置。