antd Drawer 实现宽度拖拽

ts 复制代码
import react from 'react '
const App = () => {
  const onmousedown = () => {
    let isDown = false
    isDown = true
    window.onmouseup = () => {
      isDown = false

      window.onmousemove = null
    }
    window.onmousemove = (e: any) => {
      if (isDown === false) {
        return
      }
      ;(document && document.getElementById('line')?.style?.left) ?? '0px'

      const d: any = document.getElementsByClassName('ant-drawer-content-wrapper')[0]
      const handle = document.body.clientWidth - e.clientX
      if (handle > document.body.clientWidth) {
        d.style.width = document.body.clientWidth + 'px'
        return
      }
      d.style.width = handle + 'px'
    }
  }
  return (
    <Drawer title="查看详情" open={open} placement="right" onClose={onClose} width="800px">
      <div id="line" onMouseDown={onmousedown} className="line"></div>
      <UserMenu />
    </Drawer>
  )
}

export default APP
相关推荐
用户2181697049303 分钟前
Flutter (二十五)视频播放
前端
半个落月3 分钟前
在浏览器里运行 DeepSeek-R1:推理、流式输出与停止生成(二)
前端·人工智能·react.js
绿岛之北4 分钟前
Electron 安全第四章: Preload 与 IPC
前端·electron
xiaominlaopodaren4 分钟前
three.js最小地图运行时(六): 地图运行时
javascript·gis·three.js
半个落月11 分钟前
在浏览器里运行 DeepSeek-R1:从 WebGPU 检测到模型加载(一)
前端·人工智能·react.js
小白勇闯网安圈11 分钟前
Vue 工程化开发:组件复用、插槽、项目结构与 ES6 模块化
javascript·vue.js·es6
八角丶12 分钟前
Node.js 事件循环详解(实验驱动)
前端·node.js
deli00700712 分钟前
汉诺塔益智小游戏:浏览器里说句话,码道 WebUI 一键生成+部署上线
前端·ai编程
用户21816970493014 分钟前
Flutter (二十四) 音频
前端
愚公搬代码15 分钟前
【愚公系列】《Web应用安全》012-Behinder工具的使用
前端·安全