From 325d6e90dcd52dbb13e26ec31cabbbccb5502d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Mon, 14 Apr 2025 23:46:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(core):=20=E4=BC=98=E5=8C=96xscrollbar?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=9D=A1=E6=8B=96=E6=8B=BD=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=85=89=E6=A0=87=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/css/drag.css | 4 ---- common/modules/web-modules/xscrollbar.js | 20 ++++++++++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/common/css/drag.css b/common/css/drag.css index 6ab71c51..d707c6d0 100644 --- a/common/css/drag.css +++ b/common/css/drag.css @@ -83,8 +83,4 @@ html[data-bs-theme=dark] .vertical-line, html[data-bs-theme=dark] .drag-s-elem, html[data-bs-theme=dark] .drag-w-elem { background-color: rgb(8 105 170); -} - -.drag-disable * { - pointer-events: none !important; } \ No newline at end of file diff --git a/common/modules/web-modules/xscrollbar.js b/common/modules/web-modules/xscrollbar.js index 65795aa7..2e1b0e9f 100644 --- a/common/modules/web-modules/xscrollbar.js +++ b/common/modules/web-modules/xscrollbar.js @@ -143,24 +143,37 @@ class XScrollbar { // 上一次的拖动位置 let screenX = null; let screenY = null; + this.$thumbX.onpointerdown = (elemEvent) => { + const { currentTarget } = elemEvent; + currentTarget.setPointerCapture(elemEvent.pointerId); + }; + this.$thumbX.onpointerup = (elemEvent) => { + const { currentTarget } = elemEvent; + currentTarget.releasePointerCapture(elemEvent.pointerId); + }; this.$thumbX.addEventListener('mousedown', (e) => { this.$trackX.classList.add('x-scrollbar__track--draging'); this.thumbXActive = true; screenX = e.screenX; - $('body').addClass('drag-disable'); }); + this.$thumbY.onpointerdown = (elemEvent) => { + const { currentTarget } = elemEvent; + currentTarget.setPointerCapture(elemEvent.pointerId); + }; + this.$thumbY.onpointerup = (elemEvent) => { + const { currentTarget } = elemEvent; + currentTarget.releasePointerCapture(elemEvent.pointerId); + }; this.$thumbY.addEventListener('mousedown', (e) => { this.$trackY.classList.add('x-scrollbar__track--draging'); this.thumbYActive = true; screenY = e.screenY; - $('body').addClass('drag-disable'); }); this.onMouseup = ((e) => { this.$trackX.classList.remove('x-scrollbar__track--draging'); this.$trackY.classList.remove('x-scrollbar__track--draging'); this.thumbXActive = false; this.thumbYActive = false; - $('body').removeClass('drag-disable'); }).bind(this); document.addEventListener('mouseup', this.onMouseup); this.onMousemove = ((e) => { @@ -287,7 +300,6 @@ class XScrollbar { document.removeEventListener('mousemove', this.onMousemove); this.$container.removeEventListener('wheel', this.onWheel); this.$container.removeEventListener('scroll', this.onScroll); - this.$dom.classList.remove('x-scrollbar'); this.$dom.classList.remove('x-scrollbar-keep');