我正在使用剑道网格。我想添加一个向下滑动的动画 - 当我点击网格中的一行时,它会随着动画展开(展开发生在 grid.ExpandRow 函数 - 剑道内部)。
我认为我需要关于 k-detail-row 元素的动画。但我仍然找不到合适的地方/方法来做到这一点。
任何人都已经这样做了,并且可以帮助我。
我有同样的问题,虽然这是一个旧帖子,但我认为有人可能需要它。
不幸的是,剑道还不支持这个功能,但是有一个解决方案。
Kendo 使用 jquery toggle() 来显示和隐藏详细信息行,因此通过在 jQuery 上执行条件覆盖,您可以插入动画。
jQuery(function($) {
var _oldShow = $.fn.show;
var _oldHide = $.fn.hide;
$.fn.show = function(speed, oldCallback) {
return $(this).each(function(index, item) {
var obj = $(item);
_oldShow.apply(obj, [speed, oldCallback]);
if (obj.hasClass("k-detail-row")) {
obj.find(".k-grid.k-widget").each(function () {
var grid = $(this);
grid.slideDown(300);
});
}
});
}
$.fn.hide = function (speed, oldCallback) {
return $(this).each(function () {
var obj = $(this);
if (obj.hasClass("k-detail-row")) {
obj.find(".k-grid.k-widget").each(function () {
$(this).slideUp(300, function () { _oldHide.apply(obj, [speed, oldCallback]); });
});
} else {
_oldHide.apply(obj, [speed, oldCallback]);
}
});
}
});
不幸的是,表格行不支持动画。这是一个相关的问题:如何在表格行上使用 slideDown(或显示)功能?
我今天遇到了这个问题,并设法使用网格的 detailExpand 函数来解决它。然后,您可以使用 Kendo Fx 向下滑动效果使详细信息行向下滑动。例如:
detailExpand: function (e) {
var detailRow = e.detailRow;
setTimeout(function () {
kendo.fx(detailRow).slideIn("down").duration(375).play();
}, 0);
}
欲了解更多信息,请查看: