类似百度登录的一个效果,鼠标可以随意移动登录框

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .layer {
            width: 200px;
            height: 200px;
            background-color: red;
            cursor: move;
            position: absolute;
        }
    </style>
</head>

<body>
    <div class="layer"></div>

    <script>
        let mylayer = document.querySelector('.layer');
        let canMove = false;
        let x = 0, y = 0;
        let maxLeft=window.innerWidth-mylayer.offsetWidth;
        let maxTop=window.innerHeight-mylayer.offsetHeight;

        mylayer.onmousedown = function (e) {
            canMove = true;
            x = e.pageX - mylayer.offsetLeft;
            y = e.pageY - mylayer.offsetTop ;
            console.log(111)
        }
        window.onmousemove = function (e) {
            if (canMove) {
                let left = e.pageX - x;
                let top = e.pageY - y;
                if(left<0)left=0;
                if(left>maxLeft)left=maxLeft;
                if(top<0)top=0;
                if(top>maxTop)top=maxTop;

                mylayer.style.left = left + 'px';
                mylayer.style.top = top + 'px';
            }

        }
        window.onmouseup = function () {
            canMove = false
        }

    </script>
</body>

</html>

 

posted on 2020-06-26 14:35  ScottJS  阅读(156)  评论(0)    收藏  举报