1. 程式人生 > >JS 事件基礎 跟隨滑鼠移動

JS 事件基礎 跟隨滑鼠移動

做一個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>