一个一个地淡入元素,然后全部淡出并重新开始

发布于 2024-11-01 08:07:09 字数 338 浏览 1 评论 0原文

我需要淡入几个列表元素,然后将它们全部淡出并重新开始。我在这里找到了代码:http://jsfiddle.net/mqthK/,这是此处指出:逐个淡入淡出多个元素。但是,我需要递归运行此代码(即淡出所有元素,然后再次调用该函数并重新开始)。

有人可以分享正确的代码吗?

I need to fade in several list elements, then fade them all out and start over. I've got the code I found here: http://jsfiddle.net/mqthK/, which was pointed out here: Fade multiple elements one after the other. However, I need to run this code recursively (i.e. - fade out all elements, then call the function again and start over).

Could someone share the right code for this, please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寂寞陪衬 2024-11-08 08:07:09

如果您更新到 jQuery 1.4.4 或更高版本,则可以使用 fadeToggle 方法。

如果您选择要淡入淡出的所有元素,并发送下一个要显示/隐藏的元素的索引,则可以轻松循环并重新启动:

function fadeLI(elem, idx) {
    elem.eq(idx).fadeToggle(500, function() {
        fadeLI(elem, (idx + 1) % elem.length);
    });
}

fadeLI($("#list li"), 0);

If you update to jQuery 1.4.4 or later, you can use the fadeToggle method.

If you select all the elements that you want to fade, and send in the index of the next element to show/hide, you can easily loop and restart:

http://jsfiddle.net/mqthK/48/

function fadeLI(elem, idx) {
    elem.eq(idx).fadeToggle(500, function() {
        fadeLI(elem, (idx + 1) % elem.length);
    });
}

fadeLI($("#list li"), 0);
贱人配狗天长地久 2024-11-08 08:07:09

只需检查是否有下一个元素;如果没有,那么您就位于列表的末尾;然后淡出所有内容并运行第一个元素。

Just check if there is a next element; if not, you're at the end of the list; then fade everything out and run with the first element.

巴黎夜雨 2024-11-08 08:07:09

将 fadeLI 更改为如下:

工作示例: http://jsfiddle.net/mqthK/45/

function fadeLI(elem, show) {
        if(elem.length == 0){
            fadeLI($("#list li:first"));
        }
        if(elem.is(":visible")){
        elem.fadeOut(500, function() {
                    fadeLI($(this).next());
            });
        }
        else{
            elem.fadeIn(500, function() {
                    fadeLI($(this).next());
            });
        }
}

Change the fadeLI to as below:

Working example: http://jsfiddle.net/mqthK/45/

function fadeLI(elem, show) {
        if(elem.length == 0){
            fadeLI($("#list li:first"));
        }
        if(elem.is(":visible")){
        elem.fadeOut(500, function() {
                    fadeLI($(this).next());
            });
        }
        else{
            elem.fadeIn(500, function() {
                    fadeLI($(this).next());
            });
        }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文