我有一段代码循环遍历命名 div 中的图像。每个图像依次显示,并调用 jquery 幻灯片效果以使幻灯片更有趣。幻灯片效果完成后,我会隐藏之前显示的图像,以便稍后再次滑动。
一切都很好,除非我返回显示 div 中的第一张图像,此时幻灯片效果不显示。此模式在循环中的每次迭代中重复。
页面的 css 将 img 设置为 display:none 以便所有图像最初都被隐藏。
代码如下:
$(function()
{
// Sort out the handling of the slider (if it exists)
if ($('#slider').length != 0)
{
var allImgs = $('#slider img');
var $active = allImgs.eq(0);
$active.show(0, function()
{
var $next = $active.next();
var timer = setInterval(function()
{
// Make the effect happen on the next one in the list
$next.show("slide", { direction: "left" }, "slow", function()
{
$active.hide(0, function()
{
$active = $next;
$next = (allImgs.last().index() == allImgs.index($active)) ?
allImgs.eq(0) : $active.next();
});
});
}, 5000);
});
}
});
对我来说,代码看起来应该可以工作 - 我缺少什么明显的东西?
编辑
感谢mccannf,我更改了我的 CSS 以便 #slider img 具有 z-index:100; 然后将我的代码更改如下:
$next.show("slide", { direction: "left" }, "slow", function()
{
$next.css("z-index", 99);
$active.hide(0, function()
{
$active.css("z-index", 100);
$active = $next;
$next = (allImgs.last().index() == allImgs.index($active))
? allImgs.eq(0) : $active.next();
});
});