拖动浮层(div等任何标签)

拖动浮层(div等任何标签)

  之前项目做到一个弹出层需要一个拖动功能,上网上查了资料,发现很多方法,但是感觉都很繁琐,有的甚至没看懂。看了几个方法后发现基本上都是使用mousedown、mousemove和mouseup这三个函数来写的,然后就自己写了个移动div的方法。
  先用mousedown来判断是否要开启移动,然后通过mousemove来获得移动的距离,实现移动;最后通过mouseup事件来判断移动结束了。

完整代码实例:

<html>
<head>
    <meta charset="utf-8"></meta>
    <title>Drag Div</title>
    <script src="jquery-1.12.1.js"></script>
</head>
<body>
    <div id="moveDiv" style="width:300px;height:300px;background-color:red;position:absolute;">
        <div id="moveBar" style="background-color:green;height:30px;cursor: move;"></div>
    </div>
    <script type="text/javascript">
        var dragJob=false;
        $(document).on("mousedown", '#moveBar', function (e) {
            dragJob = true;
        });
        document.onmousemove = function (e) {
        if (dragJob) {
            var e = e || window.event;
            var height = $(document.body).height();
            var width = $(window).width();
            var widthJob = $("#moveDiv").width();
            var heightJob = $("#moveDiv").height();
            var left = e.clientX - widthJob / 2;
            var top = e.clientY - 18 + $(document).scrollTop();
            if (top >= 0 && top < height - heightJob) {
                $("#moveDiv").css("top", top);
            }
            if (left >= 0 && left < width - widthJob) {
                $("#moveDiv").css("left", left);
            }
            return false;
        }
    };
    $(document).mouseup(function (e) {
        dragJob = false;
    });
    </script>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值