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
相关推荐
Wect4 分钟前
LeetCode 52. N 皇后 II:回溯算法高效求解
前端·算法·typescript
毛骗导演5 分钟前
万字解析 OpenClaw 源码架构-跨平台应用之 iOS 应用
前端·ios·架构
刀断青5 分钟前
Flutter 开发之第一个Flutter应用
前端
ETA85 分钟前
硬核解析:从栈堆分配看JavaScript的执行上下文
javascript
gyx_这个杀手不太冷静7 分钟前
OpenCode 进阶使用指南(第五章:最佳实践)
前端·ai编程
Lee川8 分钟前
揭开 `new` 的神秘面纱:从“黑盒”到“手写实现”的深度解析
前端·javascript·面试
bluceli11 分钟前
JavaScript Proxy与Reflect:元编程的强大工具
前端·javascript
小金鱼Y13 分钟前
从父子到跨层:JavaScript组件通信的 “全链路解决方案”
前端·react.js
V8贤13 分钟前
macOS 安装 oh-my-zsh + 必备插件踩坑记录
前端
Maxkim13 分钟前
实习摸鱼学Web Worker:算1亿个商品价格,终于不卡了!
前端