1. 程式人生 > 其它 >跟隨滑鼠移動

跟隨滑鼠移動

學習展示:

頁面大致功能為實現滑鼠移入某區域後,在滑鼠處產生新的區域(提示區域)來進行說明

非藍色區域為滑鼠移入後產生,可跟隨滑鼠在藍色區域移動,其中移入不同區域文字會變化,使用陣列物件儲存

程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload=function(){
            var t = document.getElementById("rr");
            var pp = document.getElementsByTagName(("a"))
            var arr = ["a","b","c","d","e"];
            for(var i=0;i<pp.length;i++){
                pp[i].index=i;
                pp[i].onmouseenter = function(e){
                    t.style.display="block";
                    t.innerHTML=arr[this.index];

                }
                pp[i].onmouseleave = function(){
                    t.style.display="none";
                }
                pp[i].onmousemove = function(e){
                    t.style.left = e.clientX+5+ "px";
                    t.style.top = e.clientY-5+ "px";
                    // 這裡設定向後一點是因為定位預設層級提高一級,如果不和滑鼠錯開一點位置的話,滑鼠會觸發離開該頁面的函式onmouseleave,因為這個定位層級會覆蓋原有頁面
                }
            }
            
        }
    </script>
    <style>
        a{display: block;width: 300px;background-color: blue;height: 100px;}
        #rr{display: none;background-color: aquamarine;width: 100px;height: 100px;position: absolute;}
    </style>
</head>
<body>
    <a href="">1</a>
    <a href="">2</a>
    <a href="">3</a>
    <a href="">4</a>
    <a href="">5</a>
    <div id="rr">hju</div>
</body>
</html>

  基本上就是設定下移入display:block 移出變none

  其中設定滑鼠滑動時提示區域的絕對定位隨著滑鼠座標改變,這裡只有一點需要注意:

pp[i].onmousemove = function(e){
               t.style.left = e.clientX+5+ "px";
               t.style.top = e.clientY-5+ "px";
             // 這裡設定向後一點是因為定位預設層級提高一級,如果不和滑鼠錯開一點位置的話,滑鼠會觸發離開該頁面的函式onmouseleave,因為這個定位層級會覆蓋原有頁面
          }

  也就是這裡,定位提升層級,觸發滑鼠移出函式,所以錯開位置(為什麼我複製下程式碼結果縮排變了)