有答案吗??

来源:8-2 综合实战题

慕的地5225258

2017-05-04 22:46

有答案吗??

写回答 关注

1回答

  • 田心枫
    2017-05-04 22:48:47
    已采纳
    <!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>


鼠标拖拽效果

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

25991 学习 · 148 问题

查看课程

相似问题