jQuery using append with effects
我怎么能用
对
如何将一个DIV附加到另一个DIV,并对其产生
对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'); |
其本质是:
这对我很有用:
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时,隐藏它并用参数
将附加的DIV设置为最初通过css
我需要一个类似的解决方案,想在Facebook这样的墙上添加数据,发布时,使用
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"和在关键帧中描述的整个外观。