jQuery:fadeIn/fadeOut 第一次对图像不起作用
我有一个简单的图像幻灯片,并使用 jQuery 淡出一个图像并淡入另一个图像,并相应地更改 z-index。但效果只有在第一次之后才起作用。如下所示: http://jsfiddle.net/AXMX8/1/ (我的测试中的行为相同文件)
我认为这可能与尚未加载图像有关,因此我尝试在测试文件中使用 $(window).load() 包装代码,但它仍然是相同的。
function fadeSlide($out, $in) {
$out.fadeOut("slow", function(){
$(this).removeClass("slide-active");
});
$in.fadeIn("slow", function(){
$(this).addClass("slide-active");
});
}
function switchSlide() {
var imgs = $('#slides img');
var current = $('.slide-active');
var next = current.next();
if (next.length == 0) {
next = imgs.eq(0);
}
fadeSlide(current, next);
}
setInterval(switchSlide, 2000);
感谢您的任何帮助。
I have a simple slideshow of images and use jQuery to fade out one and fade in another, and change z-index accordingly. But the effects only work after the first time. As shown here: http://jsfiddle.net/AXMX8/1/ (same behaviour in my test file)
I thought it might have to do with image not being loaded yet, so I tried wrapping the code with $(window).load() in my test file, but it was still the same.
function fadeSlide($out, $in) {
$out.fadeOut("slow", function(){
$(this).removeClass("slide-active");
});
$in.fadeIn("slow", function(){
$(this).addClass("slide-active");
});
}
function switchSlide() {
var imgs = $('#slides img');
var current = $('.slide-active');
var next = current.next();
if (next.length == 0) {
next = imgs.eq(0);
}
fadeSlide(current, next);
}
setInterval(switchSlide, 2000);
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当函数第一次运行时,它作为
$in
变量使用的图像是可见的。因此,淡入不会出现,因为它要求所需的图像不可见。图像只是翻转到前面。这是一个简单的解决方案。 最后一行替换为:
When the function runs for the first time, the image it takes as the
$in
variable is visible. Therefore, the fade-in does not appear, as it requires the desired image to be invisible. The image just flips to the front.Here's a simple solution. Last line was replaced with: