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 相关文章推荐
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
Nov 28 Javascript
关于JavaScript的with 语句的使用方法
May 09 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
Feb 28 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
Mar 24 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
原生JS实现烟花效果
Mar 10 Javascript
javascript实现贪吃蛇小练习
Jul 05 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 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修正代码
2011/05/09 PHP
php目录操作实例代码
2014/02/21 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
JS模拟自动点击的简单实例
2013/08/08 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python实现自主查询实时天气
2018/06/22 Python
Sanic框架路由用法实例分析
2018/07/16 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
外出考察学习心得体会
2016/01/18 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技