JS实现超级好看的鼠标小尾巴特效


Posted in Javascript onDecember 01, 2020

看完这个保证你有手就行,制作各种好看的小尾巴!

JS实现超级好看的鼠标小尾巴特效

全部代码如下,看注释可以轻易看懂

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
<style>
 /*div样式*/
 #main{
 width: auto;height: 1500px;margin: 0;background-color: black;
 }
</style>
</head>
<body>
 <div id="main"></div>
 <script>
 //==========鼠标星球尾巴JS代码============

 //========函数:获取当前鼠标的坐标=========
 function getMousePosition(event) {
  var x = 0;//x坐标
  var y = 0;//y坐标
  //documentElement 返回一个文档的文档元素。
  doc = document.documentElement;
  //body 返回文档的body元素
  body = document.body;
  //解决兼容性
  if (!event) event = window.event;
  //解决鼠标滚轮滚动后与相对坐标的差值
  //pageYoffset是Netscape特有
  if (window.pageYoffset) {
  x = window.pageXOffset;
  y = window.pageYOffset;
  } else {//其他浏览器鼠标滚动
  x = (doc && doc.scrollLeft || body && body.scrollLeft || 0)
   - (doc && doc.clientLeft || body && body.clientLeft || 0);
  y = (doc && doc.scrollTop || body && body.scrollTop || 0)
   - (doc && doc.clientTop || body && body.clientTop || 0);
  }
  //得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平坐标
  x += event.clientX;
  //得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的垂直坐标
  y += event.clientY;
  //返回x和y
  return {'x': x, 'y': y};
 }
 //========函数:获取当前鼠标的坐标=========

 //=====生成从minNum到maxNum的随机数=====
 function randomNum(minNum,maxNum){
 switch(arguments.length){
  case 1:
  return parseInt(Math.random()*minNum+1,10);
  case 2:
  return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
  default:
  return 0;
 }
 }
 //=====生成从minNum到maxNum的随机数======

 //======给整个文档绑定一个鼠标移动事件======
 document.onmousemove = function(event){

 // 在页面创建一个标签,(这里是创建一个自定义标签styleImg )
 var styleImg = document.createElement("div");
 //获取随机数1-5,根据随机数来设置标签的样式
 var r = randomNum(1,5);
 switch (r) {
  case 1:
  //设置图片的路径,根据不同的路径就可以更改成不同的样式
  styleImg.innerHTML="<img src='../static/muban/images/xing01.png' style='width: 50px;height: auto;'/>"
  break;
  case 2:
  styleImg.innerHTML="<img src='../static/muban/images/xing02.png' style='width: 50px;height: auto;'/>"
  break;
  case 3:
  styleImg.innerHTML="<img src='../static/muban/images/xing03.png' style='width: 50px;height: auto;'/>"
  break;
  case 4:
  styleImg.innerHTML="<img src='../static/muban/images/xing04.png' style='width: 50px;height: auto;'/>"
  break;
  case 5:
  styleImg.innerHTML="<img src='../static/muban/images/xing05.png' style='width: 50px;height: auto;'/>"
  break;
 }
 // 由于要设置动画,设置left 和top,因此,必须要设置定位
 styleImg.style.position = 'absolute'
 // 设置标签的初始位置,即鼠标的当前位置
 var x = getMousePosition(event).x;
 var y = getMousePosition(event).y;
 // 设置styleImg的坐标
 	styleImg.style.top = y +"px";
 styleImg.style.left = x + "px";
 //绑定testDiv为当前鼠标小尾巴生效的区域
 var testDiv = document.getElementById("main");
 // 将新建的标签加到页面的 body标签中
 testDiv.appendChild(styleImg);
 // 在文档中有超出的地方就会不显示,所以尽量绑定到页面的div中
 // 设置溢出隐藏,为了防止鼠标在移动的过程中会触发上下滚动条
 testDiv.style.overflow = 'hidden';
 //
 	var count = 0;
 	//setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
 var time = setInterval(function(){
 // 设置定时器 ,让每一次生成的标签在指定的周期内修改相应的透明度
 	count += 5;
  styleImg.style.opacity = (100-count)/100 ;
 }, 30)
 // setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
 // 设置延时定时器, 在一定的时间后清除上面的定时器,让创建的标签不再进行变化
 setTimeout(function(){
  // 使用 clearInterval() 来停止执行setInterval函数
  clearInterval(time);
  // 删除创建的标签
  testDiv.removeChild(styleImg);
 },250)
 }
 </script>
</body>
</html>

ps:以上代码参考了多篇不同的文献后自己敲的,没有面向VC写博客哦!

最后把图片素材送给你们吧,只要在上面代码中做简单的修改,便可以实现其他样式的小尾巴

JS实现超级好看的鼠标小尾巴特效

JS实现超级好看的鼠标小尾巴特效
JS实现超级好看的鼠标小尾巴特效

JS实现超级好看的鼠标小尾巴特效JS实现超级好看的鼠标小尾巴特效

好东西记得要收藏哦!!!

到此这篇关于JS实现超级好看的鼠标小尾巴特效的文章就介绍到这了,更多相关JS实现鼠标小尾巴内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js GridView 实现自动计算操作代码
Mar 25 Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
Nov 10 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
Jun 16 Javascript
Node.js创建Web、TCP服务器
Dec 05 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
解析Json字符串的三种方法日常常用
May 02 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
echarts饼图各个板块之间的空隙如何实现
Dec 01 #Javascript
浅谈es6中的元编程
Dec 01 #Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 #Vue.js
微信小程序轮播图swiper代码详解
Dec 01 #Javascript
利用JavaScript模拟京东按键输入功能
Dec 01 #Javascript
layui使用及简单的三级联动实现教程
Dec 01 #Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 #Vue.js
You might like
杏林同学录(六)
2006/10/09 PHP
php 抽象类的简单应用
2011/09/06 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
Python random模块用法解析及简单示例
2017/12/18 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python3.6数独问题的解决
2019/01/21 Python
python3使用GUI统计代码量
2019/09/18 Python
python实现画出e指数函数的图像
2019/11/21 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
国培教师自我鉴定
2014/02/12 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
捐书活动总结
2014/05/04 职场文书
教师学期末个人总结
2015/02/13 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python