js实现div拖动

这里对于鼠标经过input时,使得拖动失效,因此通过对input绑定onmouseover事件,获取鼠标经过的标签name

 var inputName;
    boxid.onmouseover = function (event) {
        inputName = event.target.name;//鼠标每经过一个元素,获取name
    }

获取所需拖动的div

var div=document.getElementById("divId");

对div绑定点击事件,在绑定鼠标移动事件时,判断鼠标经过的元素是否为当前所需要排除的input元素(这里通过设置元素的name进行判断)

draggableBox(div, "name")
function draggableBox(boxid, name) {//拖动事件
    var draggable = true;
    var inputName;
    boxid.onmouseover = function (event) {
        inputName = event.target.name;//鼠标每经过一个元素,就把该元素赋值给变量el
    }
    boxid.onmousedown = function (evt) {
        var oEvent = evt || event; //获取事件对象,兼容写法
        var disX = oEvent.clientX - parseInt(boxid.offsetLeft);
        var disY = oEvent.clientY - parseInt(boxid.offsetTop);

        if (name != inputName) {
            document.onmousemove = function (evt) { //实时改变目标元素obox的位置
                var oEvent = evt || event;
                boxid.style.left = oEvent.clientX - disX + 'px';
                boxid.style.top = oEvent.clientY - disY + 'px';
            }
        }
        //停止拖动
        document.onmouseup = function () {
            document.onmousemove = null;
            document.onmouseup = null;
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值