【问题标题】:Is it possible to add animations to dgrid rows?是否可以将动画添加到 dgrid 行?
【发布时间】:2015-05-28 12:20:51
【问题描述】:

我们目前有一个单列和单行的 dgrid,如下所示:

最近我添加了一些代码,以便我们可以使用悬停在行上方的小 X 按钮删除行。

处理程序调用它来删除行: this.grid.store.remove(rowId);

当我们删除一行时,因为它是即时的,并且每一行都包含相似的文本,所以用户并不总是很明显刚刚发生了什么。

我想知道是否可以在行删除中添加某种 dojo 或 css 动画,例如删除的行淡出或滑出。这将使行删除更加明显。

谢谢

【问题讨论】:

  • 您可以使用 dojo 擦除动画功能滑出该行,然后在动画结束时删除该行。 here上的道场消灭指南@

标签: dojo css-animations dgrid


【解决方案1】:

我创建了一个jsfiddle 用于动画(wipeOut)选定的行。

require({
    packages: [
        {
            name: 'dgrid',
            location: '//cdn.rawgit.com/SitePen/dgrid/v0.3.16'
        },
        {
            name: 'xstyle',
            location: '//cdn.rawgit.com/kriszyp/xstyle/v0.2.1'
        },
        {
            name: 'put-selector',
            location: '//cdn.rawgit.com/kriszyp/put-selector/v0.3.5'
        }
    ]
}, [
    'dojo/_base/declare',
    'dgrid/OnDemandGrid',
    'dgrid/Selection',
    'dojo/store/Memory',
    "dojo/fx",
    'dojo/domReady!'
], function(declare, Grid, Selection, Memory,fx) {
    var data = [

        { id: 1, name: 'Peter', age:24 },
        { id: 2, name: 'Paul', age: 30 },
         { id: 3, name: 'Mary', age:46 }
    ];
    var store = new Memory({ data: data });
    var options = {
        columns: [
           /*{ field: 'id',  label: 'ID' },*/
            { field: 'name', label: 'Name' },
            { field: 'age', label: 'Age' }

        ],
        store: store
    };
    var CustomGrid = declare([ Grid, Selection ]);
    var grid = new CustomGrid(options, 'gridcontainer');

    grid.on('dgrid-select', function (event) {
    // Report the item from the selected row to the console.
    console.log('Row selected: ', event.rows[0].data);
        //WipeOut animation for selected row.
        fx.wipeOut({ node: event.rows[0].element }).play();

     });

});

【讨论】:

  • 这正是我想要的。非常好:) 我仍然需要确保在动画完成后从商店中删除该行,否则就是这样。
  • 要在动画简单后从商店中删除行,我可以使用 onEnd 属性。像这样: fx.wipeOut({ node: query('#myGrid-row-' + rowId)[0], onEnd: lang.hitch(this, function(){ this.grid.store.remove(rowId); } ) }).play()
  • 我忘了提到有一个 onEnd 事件,您可以将删除函数附加到该事件以删除行。
猜你喜欢
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
相关资源
最近更新 更多