经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
JavaScript实现酷炫的鼠标拖尾特效
来源:jb51  时间:2021/12/31 15:16:40  对本文有异议

看完这个保证你有手就行,制作各种好看的小尾巴!

全部代码如下,看注释可以轻易看懂

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. /*div样式*/
  8. #main{
  9. width: auto;height: 1500px;margin: 0;background-color: black;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div id="main"></div>
  15. <script>
  16. //==========鼠标星球尾巴JS代码============
  17.  
  18. //========函数:获取当前鼠标的坐标=========
  19. function getMousePosition(event) {
  20. var x = 0;//x坐标
  21. var y = 0;//y坐标
  22. //documentElement 返回一个文档的文档元素。
  23. doc = document.documentElement;
  24. //body 返回文档的body元素
  25. body = document.body;
  26. //解决兼容性
  27. if (!event) event = window.event;
  28. //解决鼠标滚轮滚动后与相对坐标的差值
  29. //pageYoffset是Netscape特有
  30. if (window.pageYoffset) {
  31. x = window.pageXOffset;
  32. y = window.pageYOffset;
  33. } else {//其他浏览器鼠标滚动
  34. x = (doc && doc.scrollLeft || body && body.scrollLeft || 0)
  35. - (doc && doc.clientLeft || body && body.clientLeft || 0);
  36. y = (doc && doc.scrollTop || body && body.scrollTop || 0)
  37. - (doc && doc.clientTop || body && body.clientTop || 0);
  38. }
  39. //得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平坐标
  40. x += event.clientX;
  41. //得到的x加上当事件被触发时鼠标指针向对于浏览器页面(或客户区)的垂直坐标
  42. y += event.clientY;
  43. //返回x和y
  44. return {'x': x, 'y': y};
  45. }
  46. //========函数:获取当前鼠标的坐标=========
  47.  
  48. //=====生成从minNum到maxNum的随机数=====
  49. function randomNum(minNum,maxNum){
  50. switch(arguments.length){
  51. case 1:
  52. return parseInt(Math.random()*minNum+1,10);
  53. case 2:
  54. return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
  55. default:
  56. return 0;
  57. }
  58. }
  59. //=====生成从minNum到maxNum的随机数======
  60.  
  61. //======给整个文档绑定一个鼠标移动事件======
  62. document.onmousemove = function(event){
  63.  
  64. // 在页面创建一个标签,(这里是创建一个自定义标签styleImg )
  65. var styleImg = document.createElement("div");
  66. //获取随机数1-5,根据随机数来设置标签的样式
  67. var r = randomNum(1,5);
  68. switch (r) {
  69. case 1:
  70. //设置图片的路径,根据不同的路径就可以更改成不同的样式
  71. styleImg.innerHTML="<img src='../static/muban/images/xing01.png' style='width: 50px;height: auto;'/>"
  72. break;
  73. case 2:
  74. styleImg.innerHTML="<img src='../static/muban/images/xing02.png' style='width: 50px;height: auto;'/>"
  75. break;
  76. case 3:
  77. styleImg.innerHTML="<img src='../static/muban/images/xing03.png' style='width: 50px;height: auto;'/>"
  78. break;
  79. case 4:
  80. styleImg.innerHTML="<img src='../static/muban/images/xing04.png' style='width: 50px;height: auto;'/>"
  81. break;
  82. case 5:
  83. styleImg.innerHTML="<img src='../static/muban/images/xing05.png' style='width: 50px;height: auto;'/>"
  84. break;
  85. }
  86. // 由于要设置动画,设置left 和top,因此,必须要设置定位
  87. styleImg.style.position = 'absolute'
  88. // 设置标签的初始位置,即鼠标的当前位置
  89. var x = getMousePosition(event).x;
  90. var y = getMousePosition(event).y;
  91. // 设置styleImg的坐标
  92. styleImg.style.top = y +"px";
  93. styleImg.style.left = x + "px";
  94. //绑定testDiv为当前鼠标小尾巴生效的区域
  95. var testDiv = document.getElementById("main");
  96. // 将新建的标签加到页面的 body标签中
  97. testDiv.appendChild(styleImg);
  98. // 在文档中有超出的地方就会不显示,所以尽量绑定到页面的div中
  99. // 设置溢出隐藏,为了防止鼠标在移动的过程中会触发上下滚动条
  100. testDiv.style.overflow = 'hidden';
  101. //
  102. var count = 0;
  103. //setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
  104. var time = setInterval(function(){
  105. // 设置定时器 ,让每一次生成的标签在指定的周期内修改相应的透明度
  106. count += 5;
  107. styleImg.style.opacity = (100-count)/100 ;
  108. }, 30)
  109. // setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
  110. // 设置延时定时器, 在一定的时间后清除上面的定时器,让创建的标签不再进行变化
  111. setTimeout(function(){
  112. // 使用 clearInterval() 来停止执行setInterval函数
  113. clearInterval(time);
  114. // 删除创建的标签
  115. testDiv.removeChild(styleImg);
  116. },250)
  117. }
  118. </script>
  119. </body>
  120. </html>

ps:以上代码参考了多篇不同的文献后自己敲的,没有面向VC写博客哦!

最后把图片素材送给你们吧,只要在上面代码中做简单的修改,便可以实现其他样式的小尾巴?

到此这篇关于JavaScript实现酷炫的鼠标拖尾特效的文章就介绍到这了,更多相关JavaScript鼠标拖尾特效内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号