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
相关推荐
晚星star6 分钟前
在 Web 前端实现流式 TTS 播放
前端·vue.js
huabuyu6 分钟前
基于 Taro 的 Markdown AST 渲染器实现
前端
薄雾晚晴6 分钟前
Rspack 性能优化实战:JS/CSS 压缩 + 代码分割,让产物体积直降 40%
前端·javascript
本末倒置1837 分钟前
前端面试高频题:18个经典技术难点深度解析与解决方案
前端·vue.js·面试
狗头大军之江苏分军28 分钟前
Meta万人裁员亲历者自述:小扎尝到了降本的甜头
前端·后端·github
秃顶老男孩.32 分钟前
web中的循环遍历
开发语言·前端·javascript
快起来搬砖了42 分钟前
实现一个优雅的城市选择器组件 - Uniapp实战
开发语言·javascript·uni-app
龙在天1 小时前
vue 请求接口快慢 覆盖 解决方案
前端
可子是我的小猫1 小时前
【JS】模块(一)
javascript
跟橙姐学代码1 小时前
Python 类的正确打开方式:从新手到进阶的第一步
前端·python·ipython