<html>
<head>
<meta charset="UTF-8">
<title>鼠标移动轨迹特效</title>
<style>
div{
width: 10px;height: 10px;background: red;position: absolute;left: 0;top: 0;border-radius: 50%;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
<script>
var alldiv = document.querySelectorAll("div");
document.onmousemove = function(eve){
var e = eve || window.event;
// pageX/Y获取鼠标位置
// 因为一个元素离开了原来的位置之后,原来的位置就找到不到了
// 所以,需要先操作最后一个元素,找前一个元素的位置,此时前一个元素还没有开始移动,所以能找到原来的位置
// 最后再操作第一个元素跟着鼠标走
for(var i=alldiv.length-1;i>0;i--){
alldiv[i].style.left = alldiv[i-1].offsetLeft + "px";
alldiv[i].style.top = alldiv[i-1].offsetTop + "px";
}
alldiv[0].style.left = e.pageX - alldiv[0].offsetHeight/2 + "px";
alldiv[0].style.top = e.pageY - alldiv[0].offsetHeight/2 + "px";
let item1 = setTimeout(function(){
for(var i=alldiv.length-1;i>0;i--){
alldiv[i].style.left = alldiv[0].offsetLeft + "px";
alldiv[i].style.top = alldiv[0].offsetTop + "px";
}
clearTimeout(item1)
},300)
}
</script>
</html>
|