【问题标题】:jQuery: Transform slideshow from one DIV to many DIVsjQuery:将幻灯片从一个 DIV 转换为多个 DIV
【发布时间】:2009-08-05 00:46:13
【问题描述】:

我正在编写一些相当基本的 jQuery 代码来从 DIV 中的一组图像创建幻灯片。 CSS 确保所有图像都堆叠在一起。该脚本查看集合中的活动图像,然后将 NEXT 图像的 z-index 向上移动(通过 CSS 类)并将其从 0.0 不透明度淡入。冲洗,重复。它实际上是基于我在John Raasch's blog 找到的一些代码。

我正在尝试调整代码,以便在不透明度淡入淡出完成后,它会查看页面上的下一个幻灯片 DIV,将其向前移动一个图像,然后继续向下移动页面,直到所有 DIV 依次向前移动一个框架。然后,我希望它等待一段时间,然后重新开始。

我尝试生成以下代码,但它让我崩溃,告诉我 target.next 不是函数...

jQuery

$(document).ready(function(){
    setInterval( "slideSwitch('div:first')", 5000 );
});

function slideSwitch(target) {
    var nextTarget = target.next();
    var active = $(target+' img.active');

    if (active.length == 0)
        active = $(target+' img:last');

    var next = active.next().length ? active.next() : $(target+' img:first');

    active.addClass('last');

    next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 500, function() {
            active.removeClass('active last');
            slideSwitch(nextTarget);
        });
};

【问题讨论】:

    标签: jquery slideshow


    【解决方案1】:

    您的“目标”不是 jquery 对象。你需要做 $(target).next()

    【讨论】:

    • 杰森,感谢您的参与!我像这样更改了 nextTarget 变量: var nextTarget = $(target).next();现在我有一个新问题。当 JS 在 .animate 回调中执行 slideSwitch(nextTarget) 时,我在 Firebug 控制台中收到以下错误:未捕获的异常:语法错误,无法识别的表达式:[object Object] 有什么想法吗?
    • 我认为这是因为您现在通过递归将 jquery 对象传递回您的函数,因此您实际上是在尝试获取 jquery 对象的 jquery 对象,所以有点困惑。如果您在动画函数中将元素或 cass 作为目标传递,它应该可以工作,因为它将根据您发送的内容设置下一个目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多