Jquery前端封装之一个块在整个浏览器的拖拽

本文介绍如何使用JavaScript实现元素的拖拽功能,包括仅限于元素内部的拖拽及全浏览器范围内的拖拽。同时提供了解决拖拽过程中出现白边问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习jquery的时候,我们会为了界面美化的问题感到苦恼,设置有时候,因为一些小功能而头疼,一步步实现拖拽功能,下面的login是自己定义的一个块。

下面这段代码只能实现点一下后的拖拽,并不能在整个浏览器里面的拖拽。

var oDiv=document.getElementById('login');
    oDiv.onmousedown=function(e){
        var e=e||window.event;
        var diffX=e.clientX-oDiv.offsetLeft;
        var diffY=e.clientY-oDiv.offsetTop;
        oDiv.onmousemove=function(e){
            var e=e||window.event;
            oDiv.style.left=e.clientX-diffX+'px';
            oDiv.style.top=e.clientY-diffY+'px';
        };
        oDiv.onmouseup=function(){
            oDiv.onmousemove=null;
            oDiv.onmouseup=null;
        };
        
    };

下面这段代码只能实现点一下后的拖拽,能在整个浏览器里面的拖拽。

var oDiv=document.getElementById('login');
    oDiv.onmousedown=function(e){
        var e=e||window.event;
        var diffX=e.clientX-oDiv.offsetLeft;
        var diffY=e.clientY-oDiv.offsetTop;
        document.onmousemove=function(e){
            var e=e||window.event;
            oDiv.style.left=e.clientX-diffX+'px';
            oDiv.style.top=e.clientY-diffY+'px';
        };
        document.onmouseup=function(){
            document.onmousemove=null;
            document.onmouseup=null;
        };
        
    };


在拖拽过程中,我们会遇见白边的问题,这个问题上,我们在实现遮障的时候,在其里面写上这段代码即可

document.documentElement.style.overflow='hidden';


在解除遮障时

document.documentElement.style.overflow='auto';



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wen's

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值