当前位置:编程学习 > > 正文

javascript设置鼠标(JavaScript实现鼠标控制自由移动的窗口)

时间:2021-10-23 10:21:56类别:编程学习

javascript设置鼠标

JavaScript实现鼠标控制自由移动的窗口

本文实例为大家分享了JavaScript实现鼠标控制自由窗口的具体代码,供大家参考,具体内容如下

javascript设置鼠标(JavaScript实现鼠标控制自由移动的窗口)

代码:

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用鼠标移动的窗口</title>
        <style>
            .mainli {
                width: 350px;
                height: 200px;
                border: 2px black solid;
                position: absolute;
            }
    
            .titleli {
                width: 350px;
                height: 30px;
                background-color: YellowGreen  ;
                text-align: center;
                line-height: 30px;
            }
    
            .contentli {
                width: 350px;
                height: 170px;
                background-color: SandyBrown ;
                text-align: center;
            }
        </style>
    </head>
    <body>
    <!--onmousedown:事件会在鼠标按键被按下时发生; onmousemove:事件会在鼠标指针移到指定的对象时发生-->
    <li class="mainli" id="mainli" style="top: 20px;left: 20px">
        <li class="titleli" id="titleli" onmousedown="mouseDown()" onmouseup="mouseUp()">
            标题栏
        </li>
        <li class="contentli">
            《鼠标可控的自由窗口》<br>
            注意:没有给mainli设置position为absolute前不能移动
        </li>
    </li>
    <script>
        var dx;
        var dy;
        var mainliObj = null;
        var titleliObj = null;
    
        /**
         * 鼠标按下函数,当鼠标按下时执行该函数
         */
        function mouseDown() {
            //获得鼠标的键值,0是鼠标左键;1是鼠标滚轴键;2是鼠标右键
            if (event.button == 0) {
                mainliObj = document.getElementById("mainli");
                titleliObj = document.getElementById("titleli");
                //设置鼠标样式
                titleliObj.style.cursor = "move";
                //设置主li的阴影样式
                mainliObj.style.boxShadow = "0px 0px 10px #000";
                //获得鼠标当前坐标
                let x = event.x;
                let y = event.y;
                dx = x - parseInt(mainliObj.style.left);
                dy = y - parseInt(mainliObj.style.top);
    
            }
        }
    
        //鼠标移动的时候调用
        document.onmousemove = mouseMove;
    
        /**
         * 按下鼠标后移动函数,当鼠标移动是执行该函数,移动li
         */
        function mouseMove() {
            if (mainliObj != null) {
                //获得鼠标当前移动的坐标位置
                let x = event.x;//鼠标移动的x轴的坐标
                let y = event.y;//鼠标移动的y轴的坐标
                //计算li移动后的left与top的距离
                //使用当前坐标减去鼠标在li中的位置与li左边与顶端的距离
                let left = x - dx;
                let top = y - dy;
                //设置li新的坐标位置
                mainliObj.style.left = left + "px";
                mainliObj.style.top = top + "px";
            }
        }
        /**
         * 鼠标松开函数,当鼠标松开时执行该函数
         */
        function mouseUp() {
            if (mainliObj != null) {
                dx = null;
                dy = null;
                //设置li的阴影样式
                mainliObj.style.boxShadow="none";
                mainliObj = null;
                titleliObj.style.cursor="pointer";
                titleliObj = null;
            }
        }
    </script>
    </body>
    </html>
    
  • 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    上一篇下一篇

    猜您喜欢

    热门推荐