流星:删除一个帖子,并用_uihooks将其他帖子动画化
Meteor: removing a post, and animating the other posts with _uihooks
在Meteor中,当我从集合中删除一个帖子时,我希望该帖子下的帖子向上滑动,占用被删除的帖子的位置。
我读到我应该使用_uihooks来做到这一点,但我只是不确定如何实现它。
有人可以帮助我,可能是一个简单的例子从Meteorpad?
你想要实现的是非常简单的,你真的不需要一个第三方库来做到这一点。我想这里唯一的问题是_uihooks
没有很好地记录,所以你几乎要靠自己来弄清楚它是如何工作的。
大致思路如下:
Template.body.onRendered(function() {
var container = this.$('.ui.page.grid')[0];
container._uihooks = {
insertElement: function(node, next) {
// this is the default behavior
container.insertBefore(node, next);
},
removeElement: function(node) {
var $node = $(node);
$node.removeClass('visible');
// can't use Meteor.setTimeout here because
// it will complain about setting timeouts
// inside simulations ...
setTimeout(function() {
$node.remove();
}, 1000);
},
};
});
还有一个叫做movedElement
的钩子,但是你可能不需要它。
基本上,你需要获取一个容器元素,它将"监听"它的子数组中的变化。当插入或删除元素时,调用相应的钩子。node
和next
参数分别表示感兴趣的元素和它的下一个兄弟元素。
为给定的动作定义一个钩子,可以防止默认行为的发生,所以你要独自负责插入/删除元素。但这没关系,因为您有机会在完全摆脱元素之前执行相应的动画。这里是使用css
动画附加到visible
类。
要查看它在实践中是如何工作的,请访问这里:
http://uihooks-example.meteor.com进一步阅读
示例的源代码可在GitHub上获得:
https://github.com/apendua/uihooks-example如果你想更好地理解_uihooks
API是如何工作的,请查看Meteor的源代码:
陷阱
初始呈现元素时不调用insertElement
。因此,如果你打算在插入新元素时执行动画,那么考虑到这一点是很重要的。
没有使用uihooks, Percolate Studio创建了一个很棒的名为Momentum的包,它使uihooks更容易使用(http://atmospherejs.com/percolate/momentum)!您可以将帖子模板包装为这样,以使已删除的帖子下面的帖子向上滑动为
{{#momentum plugin='fade'}}
{{#each posts}}
{{> Post}}
{{/each}}
{{/momentum}}
下面是这个行为的一个Meteorpad示例http://meteorpad.com/pad/sGu4A4nrQ56cXywxr/Momentum%20example。好运!
- 搜索并用jQuery替换整个HTML字符串
- 我如何制作一个文件的副本并用gump将其移动到父文件夹
- 如何上传一个XML对象并用Perl将其保存在服务器上
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 如何返回到上一页并用php或javascript刷新它
- 单击并用CTRL+C复制值时高亮显示html表格单元格
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- 从AJAX请求中获取JSON数据并用随机项填充
- 循环并用parseJSON数据替换CSS
- 我可以在另一个函数中创建一个函数并用Javascript调用它吗
- 如何用javascript访问json对象并用java将其转换为数组
- 如何带上kmllayer并用listensers制作菜单
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 使用JavaScript返回click-li项目的值,并用结果填充文本区域
- 如何阅读我的json并用纯nodejs将其发送到电子邮件
- 如何通过C#返回JSON并用JavaScript进行解析
- 使用Nodejs在Mysql中插入多个值,并用响应通知用户
- JQuery 在渲染后搜索 dom 元素,并用其相应的值替换键
- jQuery,从列表中获取每个值并用包装
- 如何使用 .ajax 拉取 MySQL 数据并用它填充表单