关于动画:jQuery使用附加效果

jQuery using append with effects

我怎么能用.append()show('slow')这样的效果

append有影响似乎根本不起作用,其结果与正常show()相同。没有过渡,没有动画。

如何将一个DIV附加到另一个DIV,并对其产生slideDownshow('slow')效果?


对append产生影响是不起作用的,因为一旦添加了DIV,浏览器显示的内容就会更新。因此,结合Mark B和Steerpike的答案:

在实际附加之前,将要附加的DIV设置为隐藏样式。您可以使用内联或外部CSS脚本,或者只创建DIV作为

1
 ...

然后可以将效果链接到附加(演示):

1
$('#new_div').appendTo('#original_div').show('slow');

或(演示):

1
2
3
var $new = $('#new_div');
$('#original_div').append($new);
$new.show('slow');


其本质是:

  • 您正在对父级调用"append"
  • 但你想给这个新孩子打电话叫"秀"
  • 这对我很有用:

    1
    2
    3
    4
    5
    var new_item = $('<p>
    hello
    </p>').hide();
    parent.append(new_item);
    new_item.show('normal');

    或:

    1
    2
    3
    $('<p>
    hello
    </p>').hide().appendTo(parent).show('normal');


    另一种处理传入数据的方法(如从Ajax调用):

    1
    2
    3
    var new_div = $(data).hide();
    $('#old_div').append(new_div);
    new_div.slideDown();

    类似:

    1
    $('#test').append('Hello').hide().show('slow');

    该怎么办?

    编辑:对不起,代码有误,也接受了马特的建议。


    当您附加到DIV时,隐藏它并用参数"slow"显示它。

    10


    将附加的DIV设置为最初通过css visibility:hidden隐藏。


    我需要一个类似的解决方案,想在Facebook这样的墙上添加数据,发布时,使用prepend()在上面添加最新的帖子,认为可能对其他人有用。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $("#statusupdate").submit( function () {    
              $.post(
               'ajax.php',
                $(this).serialize(),
                function(data){

                    $("#box").prepend($(data).fadeIn('slow'));                  
                    $("#status").val('');
                }
              );
               event.preventDefault();  
            });

    jax.php中的代码是

    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (isset($_POST))
    {

        $feed = $_POST['feed'];
        echo"<p id="result" style="width:200px;height:50px;background-color:lightgray;display:none;">$feed
    </p>";


    }

    为什么不直接隐藏、附加、然后显示,如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <input id="mybutton" type="button" value="move">


        $("#mybutton").click(function(){
            $('#child').hide(1000, function(){
                $('#parent2').append($('#child'));
                $('#child').show(1000);
            });

        });

    在我看来:

    1
    2
    $("div.which-stores-content").append("Content);
    $("div.content").hide().show("fast");

    您可以使用visibility:hidden->visibility:visible调整您的CSS,并调整转换等:visibility 1.0s;


    如果使用动画,则可以显示平滑。在样式中,只需添加"Animation:Show 1s"和在关键帧中描述的整个外观。