Browse Source

fix: fix mouseup in browser outside can't release slider , #1412

Co-authored-by: pointhalo <[email protected]>
代强 2 years ago
parent
commit
fe1e824eed
1 changed files with 2 additions and 2 deletions
  1. 2 2
      packages/semi-ui/slider/index.tsx

+ 2 - 2
packages/semi-ui/slider/index.tsx

@@ -186,7 +186,7 @@ export default class Slider extends BaseComponent<SliderProps, SliderState> {
             getMaxHandleEl: () => this.maxHanleEl.current,
             onHandleDown: (e: React.MouseEvent) => {
                 this._addEventListener(document.body, 'mousemove', this.foundation.onHandleMove, false);
-                this._addEventListener(document.body, 'mouseup', this.foundation.onHandleUp, false);
+                this._addEventListener(window, 'mouseup', this.foundation.onHandleUp, false);
                 this._addEventListener(document.body, 'touchmove', this.foundation.onHandleTouchMove, false);
             },
             onHandleMove: (mousePos: number, isMin: boolean, stateChangeCallback = noop, clickTrack = false, outPutValue): boolean | void => {
@@ -613,7 +613,7 @@ export default class Slider extends BaseComponent<SliderProps, SliderState> {
         return slider;
     }
 
-    private _addEventListener<T extends keyof HTMLElementEventMap>(target: HTMLElement, eventName: T, callback: (e: HTMLElementEventMap[T]) => void, ...rests: any) {
+    private _addEventListener<T extends keyof (HTMLElementEventMap & WindowEventMap)>(target: HTMLElement | Window, eventName: T, callback: EventListenerOrEventListenerObject, ...rests: any) {
         if (target.addEventListener) {
             target.addEventListener(eventName, callback, ...rests);
             const clearSelf = () => {