可以为 jQuery 前置动画吗?

Posted

技术标签:

【中文标题】可以为 jQuery 前置动画吗?【英文标题】:Possible to animate jQuery prepend? 【发布时间】:2014-08-17 12:11:37 【问题描述】:

我在单击按钮时将一些数据添加到我的页面中,而不是立即在页面上填充,我想知道是否有一种方法可以使用 slideToggle 或 CSS 动画为 prepend() 设置动画。

这是我当前的脚本:

var data = $('.data').html();
var insert = '<div class="data-container">'+ data +'</div>';
$('button').click(function()
    $('.data-container').remove();
    $('.initial').prepend(insert);
);

还有一个JSFiddle

【问题讨论】:

可能是***.com/questions/1520178的副本 你的意思是:jsfiddle.net/TD784 完美@EhsanSajjad,如果你想把它变成一个答案,我会很乐意接受它。谢谢! @APAD1 添加为答案.. 【参考方案1】:

即使没有clone(),这一个班轮也很适合我

我是这样使用它的:

var elementToPrepend = "<div>Your content</div>";
$(elementToPrepend).hide().prependTo(".prependHere").fadeIn();

编辑:正确的单行应该是:

$("<div>Your content</div>").hide().prependTo(".prependHere").fadeIn();

Source

【讨论】:

【参考方案2】:

你必须这样做:

var data = $('.data').html();
var insert = '<div class="data-container">'+ data +'</div>';
$('button').click(function()
    $('.data-container').remove();
    $('.initial').hide();
    $('.initial').prepend(insert);
    $('.initial').slideToggle();

);

FIDDLE UPDATED

【讨论】:

【参考方案3】:

您可以很容易地为prepend()append() 制作动画。只需将整个动画对象作为参数传递,如下所示:

$("#container").prepend( $(data).hide().delay(500).show('slow') );

如果你喜欢它更具可读性:

var object = $(data).hide().delay(500).show('slow');
$("#container").prepend(object);

【讨论】:

【参考方案4】:

像这样? http://jsfiddle.net/zR9fN/5/

CSS

/* add display:none; to keep it hidden after being prepended */
.data-container 
    display:none;
    ...

jQuery

....
$('.initial').prepend(insert);
$('.data-container').fadeIn('slow'); // fade in the prepended content that was hidden

【讨论】:

【参考方案5】:
var data = $('.data').html();
var insert = '<div id="animationWrapper" style="height: 0"><div class="data-container">'+ data +'</div></div>';
$('button').click(function()
    $('.data-container').remove();
    $('.initial').prepend(insert);
    jQuery('#animationWrapper').animate(height: '300px', 5000, function()console.log('Yammie!'))
);

请检查语法,但这应该是一个开始。

【讨论】:

【参考方案6】:

您可以简单地在添加之前制作动画。 如果您在添加之前对其进行动画处理,它将与动画一起出现。

例如

childContainer.fadeIn(1000);
$(containerElement).prepend(childContainer);

除了fadeIn,您还可以使用任何动画。

【讨论】:

【参考方案7】:

我必须分两行来获得平滑的 slideDown 动画:

$("<div>Your content</div>").hide().prependTo(".prependHere");
$(".prependHere:first-child").slideDown();

【讨论】:

以上是关于可以为 jQuery 前置动画吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Jquery 中切换时如何更改前置文本?

jQuery。前置淡入(错误)

前置过滤器有用吗?前置过滤器有哪些作用?

前置过滤器有用吗,前置过滤器该如何选择

前置过滤器有用吗?为何很少有人推荐?

前置过滤器有用吗?前置过滤器的作用是啥?