用JS怎样实现鼠标小尾巴的特效?
Admin 2021-10-15 群英技术资讯 473 次浏览
这篇文章给大家分享用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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Vue如何实现兄弟组件间的联动效果,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
JavaScript怎么创建多个对象?javascript面向对象创建多个对象的方法,哪个最好用?字面量?工厂模式方法?构造函数方法?原型方法?原型加构造函数方法?进来一看便知。
最简单粗暴的通信方式是 Nodejs调用一下 Python 脚本,本文详细介绍了Nodejs与Python 双向通信的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JavaScript实现网页带动画返回顶部的方法详解 服务器由阿里云换到了腾讯云,我的代码之前一直都是托管在git上的,但是搬家的时候,可能是着急了,之前有些新加的文件没有托管到git上,所以,就丢了. 不过无所谓了,可以重新写嘛. 之前博客的回到顶部功能是请之前的一位前端的同事帮忙写的,这次打算自己尝试一下. 返回顶部无非就是锚点. 第一个版本: <body style="height:2000px;"> <div id="topAnchor"></div> <a ...
本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于弱映射与弱集合的相关问题,下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008