JS实现鼠标移动拖尾


Posted in Javascript onDecember 27, 2020

本文实例为大家分享了JS实现鼠标移动拖尾的具体代码,供大家参考,具体内容如下

JS 代码

function getMousePos(event) {
  var e = event || window.event;
  var mouseInfo = {
    mouseX : e.clientX,
    mouseY : e.clientY
  }
  return mouseInfo;
}
 
function getMouseArt() {
  this.artStyle = {
    position: "fixed",
    top: 0,
    left: 0,
    width: "50px",
    height: "50px",
    "font-size": 0,
    "color": 0,
    "text-transform": 0
  };
  this.init = function(obj) {
    var character = ["你", "真", "的", "爱", "我", "吗", "喜", "欢", "不", "对", "起", "彩", "色", "世", "界", "灰", "?"];
    var font_trans = ["uppercase", "lowercase"];
    this.Alpha = 1;
 
    this.element = document.createElement('div');
    var text = document.createTextNode(character[Math.floor(Math.random() * character.length)]);
    this.element.appendChild(text);
 
    this.addStyle(this.element, this.artStyle);
 
    var offsetV = Math.floor(Math.random() * 60 - 30); // -30 ~ 30
    this.element.style.left = obj.mouseX + offsetV +"px"; // x
    this.element.style.top = obj.mouseY + offsetV +"px"; // y
    this.element.style.fontSize = Math.floor(Math.random() * 20 + 10) + "px";
    this.element.style.color = "hsla("+ Math.floor(Math.random() * 255) + ",100%,50%," + this.Alpha + ")";
    this.element.style.textTransform = font_trans[Math.floor(Math.random() * 2)];
 
    document.body.appendChild(this.element);
  }
  this.addStyle = function(ele, genuine) {
    for (var k in genuine) {
      ele.style[k] = genuine[k];
    }
  }
  this.delElement = function() {
    document.body.removeChild(this.element);
  }
  this.reduceColor = function(win) {
    if (this.Alpha <= 1 && this.Alpha > 0) {
      this.Alpha = this.Alpha - 0.1;
      this.element.style.color = "hsla("+ Math.floor(Math.random() * 255) + ",100%,50%," + this.Alpha + ")";
      console.log(this.Alpha);
     }
    else {
      clearInterval(win);
      this.delElement();
    }
  }
}
 
document.onmousemove = function(event) {
  var obj = getMousePos(event);
  var art = new getMouseArt();
  art.init(obj);
  var win = setInterval(function() {
    art.reduceColor(win);
  }, 30);
}

HTML 代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body {
      background: black;
    }
  </style>
</head>
<body>
  <script src="mouse.js" type="text/javascript"></script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript编写的第一人称射击游戏
Feb 25 Javascript
js+FSO遍历文件夹下文件并显示
Mar 07 Javascript
很好用的js日历算法详细代码
Mar 07 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
jquery-syntax动态语法着色示例代码
May 14 Javascript
浅谈js原生拖放
Nov 21 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
May 22 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
vue webpack实用技巧总结
Apr 24 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 Javascript
JavaScript实现滚动加载更多
Dec 27 #Javascript
jQuery实现简单轮播图效果
Dec 27 #jQuery
JavaScript实现瀑布流布局的3种方式
Dec 27 #Javascript
Vue实现省市区三级联动
Dec 27 #Vue.js
JavaScript实现通讯录功能
Dec 27 #Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 #Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 #Vue.js
You might like
数字转英文
2006/12/06 PHP
php SQL防注入代码集合
2008/04/25 PHP
php不用正则验证真假身份证
2013/11/06 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
jquery validate demo 基础
2015/10/29 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
python实现的udp协议Server和Client代码实例
2014/06/04 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
CSS3 边框效果
2019/11/04 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
小学语文国培感言
2014/03/04 职场文书
地质灾害防治方案
2014/05/14 职场文书
绿色环保口号
2014/06/12 职场文书
违反交通法规检讨书
2014/09/10 职场文书
英文产品推荐信
2015/03/27 职场文书
初中班主任心得体会
2016/01/07 职场文书
PyMongo 查询数据的实现
2021/06/28 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server