JS 事件基础 跟随鼠标移动

本文介绍如何使用HTML、CSS和JavaScript创建一个div元素,并使其能够随着鼠标的移动而移动。通过监听鼠标移动事件并获取鼠标的位置,结合页面滚动的距离来更新div元素的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做一个div跟随鼠标移动
注意事项:但凡利用到clientX和clientY,一定要加scrollTop和scrollLeft,因为clientX和clientY都是网页可视区坐标,没有加被滚动区间的坐标

    <style>
    #div1{
        width: 100px;
        height: 100px;
        background-color: pink;
        position: absolute;
    }
    </style>
    <script>
    document.onmousemove=function(ev)
    {
        var oDiv=document.getElementById('div1');
        var oEvent=ev||event;

        var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
        var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;

        oDiv.style.left=oEvent.clientX+scrollLeft+'px';
        oDiv.style.top=oEvent.clientY+scrollTop+'px';
    }
    </script>
 </head>
 <body style="width:2000px; height:2000px">
    <div id="div1"></div>
 </body>
 </html>

可以将获取鼠标坐标封装成一个函数getPos,如下:

    //封装一个函数,用来获取鼠标坐标
    function getPos(ev)
    {
        var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
        var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;  

        return {x: ev.clientX+scrollLeft, y: ev.clientY+scrollTop};     
    }

    document.onmousemove=function(ev)
    {
        var oDiv=document.getElementById('div1');
        var oEvent=ev||event;

        var pos=getPos(oEvent); 

        oDiv.style.left=pos.x+'px';
        oDiv.style.top=pos.y+'px';
    }
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值