在jQuery中,如何为动态内容添加动画效果(如slideDown)?

In jQuery, how do I add animation effect (like slideDown) to dynamic contents?

我知道如何使用回调将处理程序附加到动态内容。

所以我可以让“.pokedex”出现,但我如何让它出现

slideDown 或 show() ?

下面是我的代码点击:

 $("img").click(function(){
    var pokeId = $(this).attr("id");
    $.get("http://pokeapi.co/api/v1/pokemon/"+ pokeId +"/", function(data){

        var imageAddress = "http://pokeapi.co/media/img/" + pokeId +".png";

        var pokeType = [];

        for (var i = 0; i < data.types.length; i++) {
            pokeType.push(data.types[i].name);
        }

        var pokeHeight = data.height;
        var pokeWeight = data.weight;

        var pokeName = data.name;

        displayPokedex(imageAddress, pokeType, pokeHeight, pokeWeight, pokeName);

    }, "json");
})

这是回调:

function displayPokedex(img, types, height, weight, name) {

    $(".pokedex-col").html("<div class='pokedex'></div>")

    var htmlString = "";
    htmlString += "<h2>"+ name +"</h2>";

    htmlString += "<img src=";
    htmlString += img;
    htmlString += " alt='pokemon pic'>";

    console.log(types);

    htmlString += "<h5>Types</h5>";
    htmlString += "<ul>";
    for (var i = 0; i < types.length; i++) {
        htmlString += "<li>" + types[i] + "</li>";
    }
    htmlString += "</ul>";

    htmlString += "<h5>Height</h5>";
    htmlString += "<h6>"+ height + "</h6>";

    htmlString += "<h5>Weight</h5>";
    htmlString += "<h6>"+ weight + "</h6>";

    $(".pokedex").html(htmlString).show(1000);
}

在上述函数的末尾,我放了 .show() 但它没有给我那种效果。

先谢谢大家了!

show() 如果元素未隐藏则不会做任何事情

尝试:

$(".pokedex").hide().html(htmlString).show(1000);

我相信您需要在创建 pokedex 元素后立即隐藏它。这样它就从隐藏过渡到显示。

您可以开始displayPokedex功能,如下所示。

$(".pokedex-col").html("<div class='pokedex'></div>");
$(".pokedex").hide();