javascript - 如何使用 ajax/json 让对象一个接一个地淡入淡出

标签 javascript jquery ajax json

我正在尝试让我的 div 保存 json 数据以实现一个又一个动画。现在他们几乎同时进来。 有点像交错动画。任何帮助都会很棒,谢谢。

我的脚本

     ajax: function(){
        $.ajax('projects.json', {
            dataType: 'json',
            success: function(result){
                var count = 0;
                for(var i=0;i<result.projectName.length;i++){
                    count++;
                    result.projectName[i].ID = count;
                    var el = $("<li class='item'><h1>"+
                        result.projectName[i].name+"</h1><div><img src='"+
                        result.projectName[i].url+"' alt='"+result.projectName[i].name+"'></div><div>"+
                        result.projectName[i].color+"</div><div>"+
                        result.projectName[i].ID+"</div></li>");
                        intro.find('ul').append(el).fadeIn();
                }
            },
            error: function(error){
                alert("Error ajax not working"+error);
            }
        });
    }

这是我的 json

{
"projectName": [{
        "name": "shortSleeve",
        "url": "/../images/frog.jpg",
        "color": "blue",
        "ID": ""
    },
    {
        "name": "slongSleeve",
        "url": "images/frog.jpg",
        "color": "red",
        "ID": ""
    },
    {
        "name": "turtleSleeve",
        "url": "images/frog.jpg",
        "color": "purple",
        "ID": ""
    }]


  }

最佳答案

因为您在获取数据之前就启动了动画。您需要为要添加的 li 元素设置延迟。

for(var i=0;i<result.projectName.length;i++){
                    count++;
                    result.projectName[i].ID = count;
                    var el = $("<li class='item'><h1>"+
                        result.projectName[i].name+"</h1><div><img src='"+
                        result.projectName[i].url+"' alt='"+result.projectName[i].name+"'></div><div>"+
                        result.projectName[i].color+"</div><div>"+
                        result.projectName[i].ID+"</div></li>").hide(); //hide it before appending it
                        intro.find('ul').append(el.delay(1500 + (count*300)).fadeIn()); //now add a delay that gets incrementally higher
                }

JSFiddle

关于javascript - 如何使用 ajax/json 让对象一个接一个地淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818003/

相关文章:

javascript - 如何在特定数据标签上隐藏 Chart.js 中的工具提示?

javascript - 从 MySQL 数据加载滚动 jQuery/PHP 数据

javascript - 使用 onclick 调用 Rails "posts#show"操作

javascript - 为什么这个最简单的 jQuery 在 iframe 代码中隐藏元素即使在同源上也不起作用?

jquery-ui - jQuery的toggleClass和slideToggle

javascript - 如何获取当前值和最大值(进度条)的差值?

javascript - 如何将单选按钮的值导出到 Excel

javascript - JQuery Ajax 获取转换说明

javascript - 为什么我无法使用 C# 类中的 JQuery 和 AJAX 设置 slider 值?

jquery - Firefox 中出现无效标签错误