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 相关文章推荐
jQuery+css实现图片滚动效果(附源码)
Mar 18 Javascript
js获取视频时长代码
Apr 10 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
Javascript实现信息滚动效果
May 18 Javascript
vue组件生命周期详解
Nov 07 Javascript
使用gulp构建前端自动化的方法示例
Dec 25 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 Javascript
webpack proxy 使用(代理的使用)
Jan 10 Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 Javascript
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
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数组循环操作详细介绍 附实例代码
2013/02/03 PHP
Laravel5中contracts详解
2015/03/02 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python re的findall和finditer的区别详解
2020/11/15 Python
python Zmail模块简介与使用示例
2020/12/19 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
JNI的定义
2012/11/25 面试题
保险专业大专生求职信
2013/10/26 职场文书
庆八一活动方案
2014/01/25 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
技术负责人任命书
2014/06/05 职场文书
法人授权委托书范本
2014/09/17 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
MySQL学习必备条件查询数据
2022/03/25 MySQL