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 相关文章推荐
jQuery父级以及同级元素查找介绍
Sep 04 Javascript
JavaScript实现点击按钮就复制当前网址
Dec 14 Javascript
thinkphp实现无限分类(使用递归)
Dec 19 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
Nov 24 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
Oct 29 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
php中几种常见安全设置详解
2010/04/06 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
python实现猜拳小游戏
2020/04/05 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
机械电子工程毕业生自荐信
2013/11/23 职场文书
股权收购意向书
2014/04/01 职场文书
社区志愿者活动方案
2014/08/18 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
同事去世追悼词
2015/06/23 职场文书
学生会任命书范本
2015/09/21 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
PYTHON InceptionV3模型的复现详解
2022/05/06 Python