3 回答
TA贡献1775条经验 获得超8个赞
首先,每两个 div 中间放一个 div,作为把手(handle),接受鼠标事件。
然后,大概这样(没有查文档,以下代码为伪代码,请自行适配你的基础库):
handle.addEventListener('mousedown', event => {
const startX = event.x;
const leftWidth = left.width;
const rightWidth = right.width;
const _onMove = event => {
left.width = leftWidth + event.x - startX;
right.width = rightWidth - (event.x - startX);
};
const _onRelease = event => {
window.removeEventListener('mouseup', _onRelease);
window.removeEventListener('mousemove', _onMove);
}
window.addEventListener('mouseup', _onRelease, false); // 注意,这里一定是 window,因为拖动过程中,可能会离开
window.addEventListener('mousemove', _onMove, false); // handle,为保证事件生效,所以要绑在 window 上
});
添加回答
举报