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

来源:互联网 发布:浙江大学翁恺 c语言pat 编辑:程序博客网 时间:2024/05/18 18:14

拖动浮层(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
原创粉丝点击