欢迎来到科站长!

JavaScript

当前位置: 主页 > 网络编程 > JavaScript

前端实现界面元素拖拽功能的3种方式总结(亲测有效)

时间:2025-02-08 10:04:04|栏目:JavaScript|点击:

目录

一、纯HTML+CSS+JS实现;




  
  
  Document



  
弹框标题
弹框内容

实现原理:使用js事件监听,监听document全局DOM的鼠标移动事件,当触发事件后,目标元素将会随鼠标一起偏移(移动)相对应的距离;因目标元素并非一直需要跟随鼠标移动,于是通过给目标元素指定区域dialogHeader 添加鼠标按下事件配合isDragging控制阀,实现只有当鼠标在指定区域按下才能实现拖动目标元素的效果。

二、VUE模板实现;


 

 

原理同上;

三、VUE全局指令实现;

Vue.directive('drag', {
    bind(el) {
        el.onmousedown = function(e) {
            let disX = e.clientX - el.offsetLeft;
            let disY = e.clientY - el.offsetTop;
            document.onmousemove = function(e) {
                let left = e.clientX - disX;
                let top = e.clientY - disY;
                if (left < 0) left = 0;
                if (top < 0) top = 0;
                if (left > document.documentElement.clientWidth - el.offsetWidth) left = document.documentElement.clientWidth - el.offsetWidth;
                if (top > document.documentElement.clientHeight - el.offsetHeight) top = document.documentElement.clientHeight - el.offsetHeight;
                el.style.left = left + 'px';
                el.style.top = top + 'px';
            };
            document.onmouseup = function() {
                document.onmousemove = null;
                document.onmouseup = null;
            };
        };
    }
});

总结

到此这篇关于前端实现界面元素拖拽功能的3种方式的文章就介绍到这了,更多相关前端实现界面元素拖拽内容请搜索科站长以前的文章或继续浏览下面的相关文章希望大家以后多多支持科站长!

上一篇:node.js的require()及基本用法

栏    目:JavaScript

下一篇:小程序webview内网页实现微信支付的代码示例

本文标题:前端实现界面元素拖拽功能的3种方式总结(亲测有效)

本文地址:https://www.fushidao.cc/wangluobiancheng/3177.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 科站长 版权所有冀ICP备14023439号