在 JQuery 中更新时平滑地向下移动 div

发布于 2024-12-07 00:41:43 字数 449 浏览 0 评论 0原文

我试图制作一个从顶部更新的列表。每次插入新列表项时,旧项目都会顺利地一起向下移动

所以首先,我每次单击时都会生成列表项

function addItem(){ 
 $('#public').prepend('<li><div id="item' + i + '" class="tile"></div></li>');
 $('#item' + i).fadeIn();                                        
 i ++}

,然后我尝试使用下面的代码对它们进行动画处理:

 $('.tile').animate({top:42},500);

奇怪的是,只有最后一个元素会动画化顺利下降,其他元素仍然会被压扁。并且之间总是有 42px 的白色。

I was trying to make a list that updates from the top. Every time when new list item is inserted, old items will be moved down together smoothly

So firstly I generate list item every time I click

function addItem(){ 
 $('#public').prepend('<li><div id="item' + i + '" class="tile"></div></li>');
 $('#item' + i).fadeIn();                                        
 i ++}

then I tried to animate() them down by using the code below:

 $('.tile').animate({top:42},500);

Strangely, only the last element will animate down smoothly, other elements will still be squashed down. And there is always 42px white between.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霊感 2024-12-14 00:41:43

我没有看到变量 i 在哪里初始化?我的意思是,它是否会增加,因为您没有在方法中传递变量或从某处检索当前值。顺便说一句,我认为您不需要使用该变量。您可以使用 jQuery 获取所有同级项,然后在该项目列表上调用动画(当然使用 if 语句跳过最新添加的项目)。

I don't see where the variable i gets initialized? I mean, does it increment since you don't pass the variable in the method or retrieve the current value from somewhere. I don't think you need to use the variable anyhow by the way. You can use jQuery to get all siblings and than call the animate on that list of items (of course with an if statement that skips the latest added item).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文