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 30 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
js漂浮广告实现代码
Aug 15 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
Apr 06 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
JS闭包与延迟求值用法示例
Dec 22 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
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
玛琪朵 Macchiato
2021/03/03 咖啡文化
建立动态的WML站点(二)
2006/10/09 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
Python 迭代器工具包【推荐】
2016/05/06 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
总经理办公室主任岗位职责
2013/11/12 职场文书
企业统计员岗位职责
2013/12/13 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
医德考评自我评价
2014/09/14 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
详解 TypeScript 枚举类型
2021/11/02 Javascript
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技