为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

1 回答

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>慕课网-拖拽实现</title>
<style type="text/css">

    #draggable{ width: 100px;height: 100px; position: absolute;top: 100px;left: 100px;border: 1px solid #ccc;background: #eee;padding: 10px;cursor: move;}

</style>
</head>
<body>

<div id="draggable">拖我</div>

<script type="text/javascript">
    var oDrag = document.getElementById('draggable');
    var isDraging = false;
    var startX = 0;
    var startY = 0;
    oDrag.addEventListener('mousedown',function(e){
        //鼠标事件1 - 在标题栏按下(要计算鼠标相对拖拽元素的左上角的坐标 ,并且标记元素为可拖动)
        isDraging = true;
        startX = e.pageX - this.offsetLeft;
        startY = e.pageY - this.offsetTop;
    })
    document.onmouseup = function(e){
        //鼠标事件3 - 鼠标松开的时候(标记元素为不可拖动)
        isDraging = false;
    }
    document.onmousemove = function(e) {
        //鼠标事件2 - 鼠标移动时(要检测,元素是否标记为移动)
        var moveX = e.pageX - startX;
        var moveY = e.pageY - startY;
        var pageX = document.documentElement.clientWidth - oDrag.offsetWidth;
        var pageY = document.documentElement.clientHeight - oDrag.offsetHeight;
        moveX = Math.min(pageX, Math.max(0, moveX));
        moveY = Math.min(pageY, Math.max(0, moveY));
        if (isDraging) {
            oDrag.style.left = moveX + 'px';
            oDrag.style.top = moveY + 'px';
        }
    };
</script>
</body>
</html>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
鼠标拖拽效果
  • 参与学习       25990    人
  • 解答问题       148    个

用你的鼠标任意拖拽屏幕上的弹出窗口,了解把元素设置为可拖拽的原理

进入课程

有答案吗??

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号