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脚本
Aug 04 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
详解Angularjs filter过滤器
Feb 06 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
简单实现JavaScript图片切换效果
Nov 28 Javascript
jQuery生成假加载动画效果
Dec 01 Javascript
javascript input输入框模糊提示功能的实现
Sep 25 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 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
在PHP中读取和写入WORD文档的代码
2008/04/09 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
简明json介绍
2008/09/28 Javascript
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Django中使用Celery的方法示例
2018/11/29 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
营业经理岗位职责
2013/11/10 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
起诉书格式范文
2015/05/20 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python