2
A
回答
2
您可以看看将@craig_h建议的状态转换或者可能只是设置一个常规的javascript事件来监视动画结束。
要利用第二种方法,您可以为每行数据添加一个新的参数changed: false
,然后在更改时将其设置为true。然后这可以将一个类添加到'changed'行。然后,当该行具有“更改”类时,让您的CSS触发动画。现在,您只需在该行上侦听“animationend”事件并将更改后的参数重置为false即可。喜欢的东西:
HTML - 行元素
<table>
<tr
ref="rows"
:class="{ changed: row.changed }"
v-for="(row, index) in rows">
<td><input v-model="row.title" type="text"></td>
<td>
<button @click="saveRowEdits(index)">save</button>
</td>
...
组件
data() {
return {
rows: [
{ title: 'foo', changed: false },
{ title: 'bar', changed: false },
],
...
}
},
methods: {
saveRowEdits (index) {
// get the rows DOM el
const row = this.$refs.rows[index]
// watch for animationend
const callback =() => {
row.removeEventListener("animationend", callback);
this.rows[index].changed = false
}
row.addEventListener("animationend", callback, false)
// update param
this.rows[index].changed = true
},
...
CSS
row.changed {
animation: changed-row 1s ...
+0
这听起来很不错。这些行实际上是从一个充满对象的巨大对象中渲染出来的。我可能做的是有一个简单的“changedRows”数组,并在计算的类上检查该行是否在该数组中。谢谢您的帮助。 – daninthemix
+0
是的,当然要适应你的需求。乐意效劳 – GuyC
相关问题
- 1. 更改表格宽度动画
- 2. 动画更改UILabel行数
- 3. 如何更改动态幼虫表格
- 4. webpack更改.vue
- 5. 如何更改表格行的背景?
- 6. Vue js元素的更改和动画位置
- 7. 动画展开表格行
- 8. 更改动画
- 9. 更改动画
- 10. Jquery - 动态更改表格的行高。
- 11. 如何更改表格
- 12. 单击网格时更改MouseLeave动画
- 13. 更改ViewPager的动画风格
- 14. 如何更改活动时更改默认动画?
- 15. 如何更改背景颜色动态创建的表格行
- 16. 如何在动态添加表格行时更改td.style
- 17. vue 2如何更改v-模型,如果值更改?
- 18. 如何更改模态UIViewController的动画风格?
- 19. 如何更改jQuery Accordion的动画风格?
- 20. jquery:将表格行更改为表格
- 21. 如何更改动画速度turn.js?
- 22. 如何更改为动画块?
- 23. 如何更改导航器的动画
- 24. 如何更改Polymer的解析动画?
- 25. 如何让动画更改UIViewControllers?
- 26. 如何更改UIScrollView contentOffset动画速度?
- 27. 如何动画CAShapleLayer的路径更改?
- 28. 如何在动画后更改视图?
- 29. jQuery的:如何更改滑块动画
- 30. 如何动画更改按钮标题?
你的意思,你想到[过渡状态](https://vuejs.org/v2/guide/transitioning-state.html)? –