vxe-table
Version:
A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.
47 lines (46 loc) • 1.39 kB
JavaScript
import XEUtils from 'xe-utils';
import { addClass, removeClass } from '../../ui/src/dom';
const rowMoveCls = 'row--drag-move';
const colMoveClass = 'col--drag-move';
/**
* 上下拖拽
*/
export function moveRowAnimateToTb(elemList, offsetTop) {
XEUtils.arrayEach(elemList, trEl => {
trEl.style.transform = `translateY(${offsetTop}px)`;
});
requestAnimationFrame(() => {
XEUtils.arrayEach(elemList, trEl => {
addClass(trEl, rowMoveCls);
trEl.style.transform = '';
});
});
}
export function clearRowAnimate(elem) {
setTimeout(() => {
if (elem) {
XEUtils.arrayEach(elem.querySelectorAll(`.vxe-body--row.${rowMoveCls}`), elem => removeClass(elem, rowMoveCls));
}
}, 500);
}
/**
* 左右拖拽
*/
export function moveColAnimateToLr(elemList, offsetLeft) {
XEUtils.arrayEach(elemList, trEl => {
trEl.style.transform = `translateX(${offsetLeft}px)`;
});
requestAnimationFrame(() => {
XEUtils.arrayEach(elemList, trEl => {
addClass(trEl, colMoveClass);
trEl.style.transform = '';
});
});
}
export function clearColAnimate(elem) {
setTimeout(() => {
if (elem) {
XEUtils.arrayEach(elem.querySelectorAll(`.vxe-table--column.${colMoveClass}`), elem => removeClass(elem, colMoveClass));
}
}, 500);
}