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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
小程序实现投票进度条
Nov 20 Javascript
d3.js实现图形缩放平移
Dec 19 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
详解node.js 事件循环
Jul 22 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 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简单提示框alert封装函数
2010/08/08 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python中的格式化输出用法总结
2016/07/28 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python @property装饰器原理解析
2020/01/22 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
大学生实习证明范本
2014/01/15 职场文书
租车协议书范本2014
2014/11/17 职场文书
党员自评材料范文
2014/12/17 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python