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 操作option的实现代码
Mar 03 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
extjs 04_grid 单击事件新发现
Nov 27 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
Sep 14 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
Puppeteer 爬取动态生成的网页实战
Nov 14 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
Mar 13 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 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计算页面执行时间的实现代码
2013/06/18 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
详解vue axios中文文档
2017/09/12 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
Django框架实现逆向解析url的方法
2018/07/04 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
C++的几个面试题附答案
2016/08/03 面试题
创建省级文明单位实施方案
2014/02/27 职场文书
二手房买卖协议书
2014/04/10 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
员工教育培训协议书
2014/09/27 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
python实现网络五子棋
2021/04/11 Python
Python实现双向链表
2022/05/25 Python