zoukankan      html  css  js  c++  java
  • 鼠标跟随效果(杀马特风格)(非主流勿黑我)

     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 (窃喜....不多说)
  • 相关阅读:
    BZOJ1406: [AHOI2007]密码箱 数论
    BZOJ5188: [Usaco2018 Jan]MooTube 并查集+离线处理
    BZOJ2662: [BeiJing wc2012]冻结 spfa+分层图
    BZOJ1297: [SCOI2009]迷路 矩阵快速幂
    BZOJ4887: [Tjoi2017]可乐 矩阵快速幂
    BZOJ5168: [HAOI2014]贴海报 线段树
    开发富文本编辑器的一些经验教训
    数据可视化的发展前景、商业/职业前景?
    市场调研中如何做数据分析?
    当前火热的短视频,背后有着哪些黑科技技术?
  • 原文地址:https://www.cnblogs.com/pnyh5/p/4123884.html
Copyright © 2011-2022 走看看