鼠标跟随效果(杀马特风格)(非主流勿黑我)

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 6 <title>萤火虫阵列</title>
 7 <meta name="description" content="">
 8 <meta name="keywords" content="">
 9 <link href="" rel="stylesheet">
10 <style>
11     div{
12         width: 50px;
13         height: 50px;
14         position: absolute;
15         display: none;
16     }
17 </style>
18 </head>
19 <body style="background:rgb(5,5,0)">
20     <div><img src="11.gif" alt=""></div>
21     <div><img src="11.gif" alt=""></div>
22     <div><img src="11.gif" alt=""></div>
23     <div><img src="11.gif" alt=""></div>
24     <div><img src="11.gif" alt=""></div>
25     <div><img src="11.gif" alt=""></div>
26     <div><img src="11.gif" alt=""></div>
27     <div><img src="11.gif" alt=""></div>
28     <div><img src="11.gif" alt=""></div>
29     <div><img src="11.gif" alt=""></div>
30     <div><img src="11.gif" alt=""></div>
31 </body>
32 <script>
33     var odiv = document.getElementsByTagName("div");
34     document.onmousemove = function () {
35         var event = event || window.event;
36         var sign = 0;
37         setInterval(function () {
38             if(sign<11){
39                 odiv[sign].style.display = "block";
40                 odiv[sign].style.left = (event.clientX - odiv[sign].offsetWidth/2) + "px";
41                 odiv[sign].style.top = (event.clientY - odiv[sign].offsetHeight/2) + "px";
42                 sign++;
43                 /*document.onmousedown = function  () {
44                     odiv[1].style.top = (event.clientY - odiv[1].offsetHeight/2 - 50) + "px";
45                     odiv[2].style.top = (event.clientY - odiv[2].offsetHeight/2 + 50) + "px";
46                     odiv[3].style.left = (event.clientX - odiv[3].offsetWidth/2 - 50) + "px";
47                     odiv[4].style.left = (event.clientX - odiv[4].offsetWidth/2 + 50) + "px";
48                     odiv[5].style.left = (event.clientX - odiv[5].offsetWidth/2 - 25) + "px";
49                     odiv[5].style.top = (event.clientY - odiv[5].offsetHeight/2 - 25) + "px";
50                     odiv[6].style.left = (event.clientX - odiv[6].offsetWidth/2 + 25) + "px";
51                     odiv[6].style.top = (event.clientY - odiv[6].offsetHeight/2 + 25) + "px";
52                     odiv[7].style.left = (event.clientX - odiv[7].offsetWidth/2 - 25) + "px";
53                     odiv[7].style.top = (event.clientY - odiv[7].offsetHeight/2 + 25) + "px";
54                     odiv[8].style.left = (event.clientX - odiv[8].offsetWidth/2 + 25) + "px";
55                     odiv[8].style.top = (event.clientY - odiv[8].offsetHeight/2 - 25) + "px";
56                 }*/            //点击展开效果,有兴趣的同学可以看看,代码书写很坑...
57             }
58         },50)
59     }
60 </script>
61 </html>

先上代码,再上图片

写一下编程思想吧,大家都知道通过

odiv[sign].style.left = (event.clientX - odiv[sign].offsetWidth/2) + "px";
 odiv[sign].style.top = (event.clientY - odiv[sign].offsetHeight/2) + "px";
这么两句就可以实现一个div的鼠标跟随效果,那么解析一下:
event.clientX/*点击事件后event对象产生的 鼠标X轴坐标*/ - odiv[sign].offsetWidth/2/*跟随鼠标的div自身的宽度除以2*/(其目的是为了让鼠标指针居中)
ok~ 那么我们已经可以做到1个div的鼠标跟随了,那么每隔N毫秒我们去调用这个函数,让下一个div跟随,如此往复,就可以做到这个炫酷的杀马特风格了。。。
SetInterval()。。。大家都懂的 ,不多说了。。这个效果还是蛮绚丽的
当然这个效果用到了一些投机取巧的方法。。。11.gif (窃喜....不多说)
原文地址:https://www.cnblogs.com/pnyh5/p/4123884.html