用JS怎样实现鼠标小尾巴的特效?
Admin 2021-10-15 群英技术资讯 1330 次浏览
这篇文章给大家分享用JS怎样实现鼠标小尾巴的特效的内容,实现原理其实并不困难,本文有代码供大家参考,感兴趣的朋友可以参考,接下来跟随小编一起来了解看看吧。

全部代码如下,看注释可以轻易看懂
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*div样式*/
#main{
width: auto;height: 1500px;margin: 0;background-color: black;
}
</style>
</head>
<body>
<div id="main"></div>
<script>
//==========鼠标星球尾巴JS代码============
//========函数:获取当前鼠标的坐标=========
function getMousePosition(event) {
var x = 0;//x坐标
var y = 0;//y坐标
//documentElement 返回一个文档的文档元素。
doc = document.documentElement;
//body 返回文档的body元素
body = document.body;
//解决兼容性
if (!event) event = window.event;
//解决鼠标滚轮滚动后与相对坐标的差值
//pageYoffset是Netscape特有
if (window.pageYoffset) {
x = window.pageXOffset;
y = window.pageYOffset;
} else {//其他浏览器鼠标滚动
x = (doc && doc.scrollLeft || body && body.scrollLeft || 0)
- (doc && doc.clientLeft || body && body.clientLeft || 0);
y = (doc && doc.scrollTop || body && body.scrollTop || 0)
- (doc && doc.clientTop || body && body.clientTop || 0);
}
//得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平坐标
x += event.clientX;
//得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的垂直坐标
y += event.clientY;
//返回x和y
return {'x': x, 'y': y};
}
//========函数:获取当前鼠标的坐标=========
//=====生成从minNum到maxNum的随机数=====
function randomNum(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1,10);
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
default:
return 0;
}
}
//=====生成从minNum到maxNum的随机数======
//======给整个文档绑定一个鼠标移动事件======
document.onmousemove = function(event){
// 在页面创建一个标签,(这里是创建一个自定义标签styleImg )
var styleImg = document.createElement("div");
//获取随机数1-5,根据随机数来设置标签的样式
var r = randomNum(1,5);
switch (r) {
case 1:
//设置图片的路径,根据不同的路径就可以更改成不同的样式
styleImg.innerHTML="<img src='../static/muban/images/xing01.png' style='width: 50px;height: auto;'/>"
break;
case 2:
styleImg.innerHTML="<img src='../static/muban/images/xing02.png' style='width: 50px;height: auto;'/>"
break;
case 3:
styleImg.innerHTML="<img src='../static/muban/images/xing03.png' style='width: 50px;height: auto;'/>"
break;
case 4:
styleImg.innerHTML="<img src='../static/muban/images/xing04.png' style='width: 50px;height: auto;'/>"
break;
case 5:
styleImg.innerHTML="<img src='../static/muban/images/xing05.png' style='width: 50px;height: auto;'/>"
break;
}
// 由于要设置动画,设置left 和top,因此,必须要设置定位
styleImg.style.position = 'absolute'
// 设置标签的初始位置,即鼠标的当前位置
var x = getMousePosition(event).x;
var y = getMousePosition(event).y;
// 设置styleImg的坐标
styleImg.style.top = y +"px";
styleImg.style.left = x + "px";
//绑定testDiv为当前鼠标小尾巴生效的区域
var testDiv = document.getElementById("main");
// 将新建的标签加到页面的 body标签中
testDiv.appendChild(styleImg);
// 在文档中有超出的地方就会不显示,所以尽量绑定到页面的div中
// 设置溢出隐藏,为了防止鼠标在移动的过程中会触发上下滚动条
testDiv.style.overflow = 'hidden';
//
var count = 0;
//setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
var time = setInterval(function(){
// 设置定时器 ,让每一次生成的标签在指定的周期内修改相应的透明度
count += 5;
styleImg.style.opacity = (100-count)/100 ;
}, 30)
// setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
// 设置延时定时器, 在一定的时间后清除上面的定时器,让创建的标签不再进行变化
setTimeout(function(){
// 使用 clearInterval() 来停止执行setInterval函数
clearInterval(time);
// 删除创建的标签
testDiv.removeChild(styleImg);
},250)
}
</script>
</body>
</html>
最后把图片素材送给你们吧,只要在上面代码中做简单的修改,便可以实现其他样式的小尾巴





关于用JS怎样实现鼠标小尾巴的特效就介绍到这,想要做好看的鼠标小尾巴效果,大家可以参考本文代码,希望能对大家有帮助,想要了解更多JS的内容,大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
一文教会你解决js数字精度丢失问题 目录 一.关于为什么要解决精度丢失 二.怎么解决js的计算精度丢失问题? 三.toPrecision 特定方法返回四舍五入长度字符串 结语 一.关于为什么要解决精度丢失 可以看下例子,因为js失去精度问题也是常见的问题,正常我们可以四舍五入或者 toFixed保留小数这种去解决 现在遇到问题是我们明知道计算结果是等于0.01的但是最后的结果确实true,如果我们遇到运算问题,小数数值比对问题,那么我们就必须要去解决他,否则也就会出现上者情况,出现逻辑判断出错问题 二.怎么解决js的计算精度丢失问
这篇文章主要为大家详细介绍了小程序实现自定义多层级单选和多选,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
方法:1、利用index()和parent()方法来获取当前元素的行位置,语法为“元素对象.parent().index()+1;”;2、利用index()方法来获取当前元素的列位置,语法为“元素对象.index()+1;”。
JS的原型对象是什么?很多新手对于原型对象可能不是很了解,下面小编就给大家介绍一下什么是原型,与原型有关的属性和方法有哪些,以及怎样创建原型对象,感兴趣的朋友就接着往下看吧。
这篇文章主要为大家详细介绍了JavaScript实现鼠标拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008