vueusejs实现拖动

https://www.vueusejs.com/guide/

 

npm i -D @vueuse/nuxt @vueuse/core
pnpm add -D @vueuse/nuxt @vueuse/core

定义变量

const contentParent = ref();

定义div

复制代码
<div
      class="lg:flex overflow-auto h-6/6 w-[calc(100%+1rem)]"      
     ref="contentParent"
@mousedown="
BoxMove"
style="position: absolute; cursor: move" >

...
</div>
复制代码

 

 

复制代码
// 窗口移动
  const BoxMove = (e: any) => {
    // 元素位置
    const { left: elL, top: elT } = useElementBounding(contentParent);

    // 鼠标位置
    let x: number = e.clientX;
    let y: number = e.clientY;

    // 鼠标到元素左边距离
    let moveX: number = x - elL.value;
    let moveY: number = y - elT.value;

    document.onmousemove = function (e: any) {
      contentParent.value.style.left = e.clientX - moveX + 'px';
      contentParent.value.style.top = e.clientY - moveY + 'px';
    };

    document.onmouseup = function () {
      document.onmousemove = null;
      document.onmouseup = null;
    };
  };
复制代码

https://blog.csdn.net/m0_51108612/article/details/134333404

posted @   jiduoduo  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示