JS 事件基礎 跟隨滑鼠移動
阿新 • • 發佈:2019-01-27
做一個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>