JS-鼠标彩色拖尾小效果

简介: 实现步骤解析:     * 这原本就是一个鼠标后面跟随一串小方块的效果,     * 后来我就想,运用之前学的随机数的案例把小方块的颜色做成彩色的,     * 并且每一个小方块的色彩是随机分配而不是我自己手动填写的。

实现步骤解析:


     * 这原本就是一个鼠标后面跟随一串小方块的效果,
     * 后来我就想,运用之前学的随机数的案例把小方块的颜色做成彩色的,
     * 并且每一个小方块的色彩是随机分配而不是我自己手动填写的。

1 function getColor(){
2                     var oMath = Math.floor(Math.random()*255);
3                     var rgb = "rgb("+
4                     Math.floor(Math.random()*255)+","+
5                     Math.floor(Math.random()*255)+","+
6                     Math.floor(Math.random()*255)+")";
7                     return rgb;
8                 }
随机颜色值封装函数

     * 等实现了以后,我又感觉虽然颜色都不一样了,但是只要页面不关闭他们就永远被分配了这个颜色不能变化了
     * 于是我又想让其颜色是随时随地随机变化随便什么颜色了。
     * 于是就将随机分配颜色的函数给了鼠标移动事件。

  
     * 之所以这么废话的原因,是我想记录下自己是怎么一步一步实现这个效果的。
     * 因为通常情况下,我们都是拿到一个效果后就蒙了,
     * 其实如果从内向外或者从外向内一层层剖析,然后一步步实现,不自乱阵脚,是可以实现最终的宏伟蓝图的。
     * 代码中:
     * getColor()函数是一个生成随机颜色值的函数,在需要给元素填充颜色的地方,直接调用就ok;
     * 其代码核心是 Math.floor(Math.random()*255) 这句,他获取到的是0-255之间的任意一个值,
     * 然后把r,g,b三个值分别用这句代码代替,凑成一个整的颜色值字符串赋给变量,最后弹出就ok了。

  
     * onmousemove函数中,是当鼠标有移动的时候会发生的事情,
     * 本来i的for循环是在这个函数的外边的,我为了让小方块可以随时随地换随机颜色,就把他放进了鼠标事件里边,每当鼠标移动一次,就从新调用一个颜色值,这样就会在鼠标移动的时候变颜色了。
     * 而多个小方块可以跟随的原理则是:
     * 所有小方块的属性为绝对定位

  
     * 其left和top值在鼠标变换时接受js传值改变。而值变化的规律是:后一个的left值等于前一个的offsetLeft值;top值等于前一个的offsetTop值

  
     * 注意的是,在这个循环中,是倒着循环的。

  
     * 最关键的是,第一个的值跟随鼠标的值+页面滚动上去的值。

  
     * 因为,鼠标的xy坐标值,只是鼠标相对于电脑屏幕(这么说更形象化,其实是根据浏览器界面)的值。
     * 而小方块或元素的xy坐标值(即left,top)则是根据的整个document||body页面,
     * 一旦页面发生滚动,小方块和鼠标的xy值将不再重合,而他们之间的差距就是scrollLeft和scrollTop;
     * 所以,最终的left、top值就是鼠标x、y值与对应的scrollleft、scrolltop值之和。

  
     * 另:
     * 这个代码还需要最后的封装处理。为了很好的体现我的制作思路我就不封装了。以后用到了可以拿下来再自己封装

源码:

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8">
  5         <title>鼠标彩色拖尾小效果</title>
  6         <meta name="author" content="郭菊锋/702004176@qq.com"/>
  7         <style type="text/css">
  8             *{margin: 0;padding: 0;}
  9             body div{
 10                 position: absolute;
 11                 width: 10px;
 12                 height: 10px;
 13                 /*margin: 10px;*/
 14                 /*background: rgb(255,255,255);*/
 15             }
 16         </style>
 17         <script type="text/javascript">
 18             window.onload = function(){
 19                 function getColor(){
 20                     var oMath = Math.floor(Math.random()*255);
 21 //                    console.log(maTh)
 22                     var rgb = "rgb("+
 23                     Math.floor(Math.random()*255)+","+
 24                     Math.floor(Math.random()*255)+","+
 25                     Math.floor(Math.random()*255)+")";
 26                     return rgb;
 27                 }
 28 //                    console.log(getColor())
 29                 var oDiv = document.getElementsByTagName("div");
 30                 
 31                 window.onmousemove = function(ev){
 32                     for(var i=0;i<oDiv.length;i++){
 33                         oDiv[i].style.backgroundColor = getColor();
 34                     }
 35                     var ev = ev || window.event;
 36                     var oScrollleft = document.documentElement.scrollleft || document.body.scrollLeft;
 37                     var oScrolltop = document.documentElement.scrollTop || document.body.scrollTop;
 38                     var oLeft = ev.clientX + oScrollleft + "px";
 39                     var oTop = ev.clientY + oScrolltop + "px";
 40 //                    for(var a = oDiv.length;a>0;a++){
 41 //                        oDiv[a].style.top = oDiv[a-1].style.top;
 42 //                        oDiv[a].style.left = oDiv[a-1].style.left;
 43                     for(var a = oDiv.length-1;a>0;a--){
 44                         oDiv[a].style.top = oDiv[a-1].offsetTop + "px";
 45                         oDiv[a].style.left = oDiv[a-1].offsetLeft + "px";
 46                     }
 47                     oDiv[0].style.top = oTop;
 48                     oDiv[0].style.left = oLeft;
 49                 }
 50 
 51             }
 52         </script>
 53     </head>
 54     <body>
 55         <h3>鼠标移进来试试</h3>
 56         <div></div>
 57         <div></div>
 58         <div></div>
 59         <div></div>
 60         <div></div>
 61         <div></div>
 62         <div></div>
 63         <div></div>
 64         <div></div>
 65         <div></div>
 66         <div></div>
 67         <div></div>
 68         <div></div>
 69         <div></div>
 70         <div></div>
 71         <div></div>
 72         <div></div>
 73         <div></div>
 74         <div></div>
 75         <div></div>
 76         <div></div>
 77         <div></div>
 78         <div></div>
 79         <div></div>
 80         <div></div>
 81         <div></div>
 82         <div></div>
 83         <div></div>
 84         <div></div>
 85         <div></div>
 86         <div></div>
 87         <div></div>
 88         <div></div>
 89         <div></div>
 90         <div></div>
 91         <div></div>
 92         <div></div>
 93         <div></div>
 94         <div></div>
 95         <div></div>
 96         <div></div>
 97         <div></div>
 98         <div></div>
 99         <div></div>
100         <div></div>
101         <div></div>
102         <div></div>
103         <div></div>
104         <div></div>
105         <div></div>
106         <div></div>
107         <div></div>
108         <div></div>
109         <div></div>
110         <div></div>
111         <div></div>
112         <div></div>
113         <div></div>
114         <div></div>
115         <div></div>
116         <div></div>
117     </body>
118 </html>

 

目录
相关文章
|
4月前
|
JavaScript 前端开发
JavaScript实现鼠标放上去之后高亮显示且隔行换色
JavaScript实现鼠标放上去之后高亮显示且隔行换色
|
11月前
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
293 0
|
3月前
|
JavaScript 前端开发
杨老师课堂之JavaScript悬浮事件(鼠标移入移出事件)
杨老师课堂之JavaScript悬浮事件(鼠标移入移出事件)
31 1
|
2月前
|
JavaScript
js 滚动鼠标滑轮放大缩小图片
js 滚动鼠标滑轮放大缩小图片
19 0
|
3月前
|
Web App开发 监控 JavaScript
JS 鼠标框选(页面选择)时返回对应的 HTML 或文案内容
JS 鼠标框选(页面选择)时返回对应的 HTML 或文案内容 当用户进行鼠标框选选择了页面上的内容时,把选择的内容进行上报。 分为以下几点: 选择文案时 选择图片、svg、iframe、video、audio 等标签时 选择 input、select、textarea 等标签时 选择 input、textarea 标签内容时 选择类似 &nbsp; 字符时 键盘全选时 鼠标右键选择 以上各模块结合时 当包含标签的时候,返回 html 结构,只有文本时返回文本内容
35 1
|
3月前
|
JavaScript
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
212 0
|
4月前
|
JavaScript 前端开发
JavaScript实现点击鼠标弹钢琴的效果
JavaScript实现点击鼠标弹钢琴的效果
25 0
|
4月前
|
JavaScript 前端开发
JavaScript实现鼠标移动特效
JavaScript实现鼠标移动特效
34 0
|
4月前
|
JavaScript
js的鼠标移入移出事件
js的鼠标移入移出事件
|
4月前
|
JavaScript 前端开发 流计算
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理