软件教程 2025年08月6日
0 收藏 0 点赞 865 浏览 896 个字
摘要 :

文章目录 需求: 本文主要讲解关于Vue自定义v-draggable指令实现可自由拖动的盒子相关内容,让我们来一起学习下吧! 需求: 这里我们想要使这个盒子可以随意的上下左右……




  • 需求:

本文主要讲解关于Vue自定义v-draggable指令实现自由拖动盒子相关内容,让我们来一起学习下吧!

需求:

这里我们想要使这个盒子可以随意的上下左右拖动Vue自定义v-draggable指令实现可自由拖动的盒子

需要我们在vue项目中创建一个自定义指定v-draggable,废话不多说直接上代码:

在main.js中

//引入Vue
import Vue from \'vue\'
Vue.directive(\'draggable\', {
    bind: function (el, binding, vnode) {
        var isDragging = false;
        var offsetX = 0;
        var offsetY = 0;

        el.addEventListener(\'mousedown\', function (event) {
            isDragging = true;
            offsetX = event.clientX - el.offsetLeft;
            offsetY = event.clientY - el.offsetTop;
        });

        document.addEventListener(\'mousemove\', function (event) {
            if (isDragging) {
                var left = event.clientX - offsetX;
                var top = event.clientY - offsetY;

                el.style.left = left + \'px\';
                el.style.top = top + \'px\';

                vnode.context.left = left;
                vnode.context.top = top;
            }
        });

        document.addEventListener(\'mouseup\', function (event) {
            isDragging = false;
        });
    }
});

然后直接在div标签上使用v-draggable就可以实现拖动了(注意给div设置宽高哦)

<div class=\"draggle-test\" v-draggable></div>

以上就是关于Vue自定义v-draggable指令实现可自由拖动的盒子相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/6624.html

管理员

相关推荐
2025-08-06

文章目录 一、Promise基础回顾 二、Promise 与 axios 结合使用场景及方法 (一)直接返回 axios …

269
2025-08-06

文章目录 一、模块初始化时的内部机制 二、常见导出写法的差异分析 (一)写法一:module.exports…

107
2025-08-06

文章目录 一、ResizeObserver详解 (一)ResizeObserver是什么 (二)ResizeObserver的基本用法 …

683
2025-08-06

文章目录 一、前期准备工作 (一)下载相关文件 (二)安装必要工具 二、处理扣子空间生成的文件…

338
2025-08-06

文章目录 一、官方文档 二、自动解包的数据类型 ref对象:无需.value即可访问 reactive对象:保持…

371
2025-08-06

文章目录 一、Hooks的工作原理 二、在if语句中使用Hook会出什么岔子? 三、React官方的Hook使用规…

843
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号