JQuery 不透明度不是动画
JQuery opacity not animating
我创建了以下函数来让 4 个图像(全部在单独的 div 中以与它们有链接)作为一种画廊淡入淡出。它有效,但是当第四张图像淡出并且第一张图像出现时,淡入淡出不起作用,它只是更改 z-index 并显示第一张。有人知道为什么会这样吗?
$(function() {
setInterval("Fader()", 5000);
});
function Fader() {
var $active = $('#slider DIV.active');
var $next;
if ($active.length == 0) $active = ('#slider DIV:last');
if ($active.next().length == 0) {
$next = $('#slider DIV:first');
} else {
$next = $active.next()
}
$active.addClass('last-active');
$next.css({
opacity: 0.0
})
.addClass('active')
.animate({
opacity: 1.0
}, 1000, function() {
$active.removeClass('active last-active');
});
}
#fp1img,#fp2img,#fp3img,#fp4img {
z-index: 8;
}
#fp1img.last-active,#fp2img.last-active,#fp3img.last-active,#fp4img.last-active {
z-index: 9;
}
#fp1img.active,#fp2img.active,#fp3img.active,#fp4img.active {
z-index: 10;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='slider'>
<div class="fpImgCrop active" id="fp1img">
<a id='fp1link' href="">1</a>
</div>
<div class="fpImgCrop" id="fp2img">
<a id='fp2link' href="">2</a>
</div>
<div class="fpImgCrop" id="fp3img">
<a id='fp3link' href="">3</a>
</div>
<div class="fpImgCrop" id="fp4img">
<a id='fp4link' href="">4</a>
</div>
</div>
使用简单的解决方案解决了这个问题。 类 active 和 last-active 被移除的地方,我只移除了 last-active。我在动画发生之前删除了活动。
$active.addClass('last-active');
$active.removeClass('active');
$next.css({opacity:0.0})
.addClass('active')
.animate({opacity:1.0},1000,function(){
$active.removeClass(' last-active'); });
我创建了以下函数来让 4 个图像(全部在单独的 div 中以与它们有链接)作为一种画廊淡入淡出。它有效,但是当第四张图像淡出并且第一张图像出现时,淡入淡出不起作用,它只是更改 z-index 并显示第一张。有人知道为什么会这样吗?
$(function() {
setInterval("Fader()", 5000);
});
function Fader() {
var $active = $('#slider DIV.active');
var $next;
if ($active.length == 0) $active = ('#slider DIV:last');
if ($active.next().length == 0) {
$next = $('#slider DIV:first');
} else {
$next = $active.next()
}
$active.addClass('last-active');
$next.css({
opacity: 0.0
})
.addClass('active')
.animate({
opacity: 1.0
}, 1000, function() {
$active.removeClass('active last-active');
});
}
#fp1img,#fp2img,#fp3img,#fp4img {
z-index: 8;
}
#fp1img.last-active,#fp2img.last-active,#fp3img.last-active,#fp4img.last-active {
z-index: 9;
}
#fp1img.active,#fp2img.active,#fp3img.active,#fp4img.active {
z-index: 10;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='slider'>
<div class="fpImgCrop active" id="fp1img">
<a id='fp1link' href="">1</a>
</div>
<div class="fpImgCrop" id="fp2img">
<a id='fp2link' href="">2</a>
</div>
<div class="fpImgCrop" id="fp3img">
<a id='fp3link' href="">3</a>
</div>
<div class="fpImgCrop" id="fp4img">
<a id='fp4link' href="">4</a>
</div>
</div>
使用简单的解决方案解决了这个问题。 类 active 和 last-active 被移除的地方,我只移除了 last-active。我在动画发生之前删除了活动。
$active.addClass('last-active');
$active.removeClass('active');
$next.css({opacity:0.0})
.addClass('active')
.animate({opacity:1.0},1000,function(){
$active.removeClass(' last-active'); });