javascript实现鼠标拖尾特效
作者:那年风吹雪正
这篇文章主要为大家详细介绍了javascript实现鼠标拖尾特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
鼠标特效需要使用定时器setTimeout在固定时间生成节点,删除节点,生成的节点赋予随机的宽高,随机颜色,使每个特效节点都看起来不一样
注意:生成的节点需要设置绝对定位,使其脱离文档流,不影响页面中其他元素的位置
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标特效</title>
<style>
* {
margin: 0;
padding: 0;
}
body {
background-color: #9df;
overflow: hidden;
height: 100vh;
}
span {
height: 30px;
width: 30px;
border-radius: 50%;
position: absolute;
pointer-events: none;
transform: translate(-50%, -50%);
box-shadow: 10px 10px 30px #45f, -10px -10px 30px #d80;
animation: box 5s linear infinite;
z-index: 3;
}
@keyframes box {
0% {
transform: translate(-50%, -50%);
opacity: 1;
filter: hue-rotate(0deg);
}
100% {
transform: translate(-50%, -1000%);
opacity: 1;
filter: hue-rotate(720deg);
}
}
</style>
</head>
<body>
</body>
</html>
<script>
document.addEventListener("mousemove", function(e) {
var body = document.querySelector("body");
var span = document.createElement("span");
var x = e.offsetX
var y = e.offsetY
span.style.left = x + "px"
span.style.top = y + "px";
console.log(x + ">>>" + y)
var a = Math.random() * 30;
span.style.width = 30 + a + "px";
span.style.height = 30 + a + "px";
body.appendChild(span);
setTimeout(function() {
span.remove();
// console.log("ok")
}, 4500)
})
</script>
运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- JavaScript中常用的数组操作方法
- 深入浅出探究JavaScript中的async与await
- JavaScript实现经典贪吃蛇游戏
- Javascript基础知识中关于内置对象的知识
- JavaScript 运行机制详解再浅谈Event Loop
- Python 协程与 JavaScript 协程的对比
- JavaScript实现简单拖拽效果
- JavaScript 数组去重详解
- JavaScript实现飞机大战游戏
- JavaScript setinterval延迟一秒解决方案
- JavaScript 上传文件限制参数案例详解
- 简单谈谈JavaScript变量提升
- 深入理解JavaScript的事件执行机制
- 8个工程必备的JavaScript代码片段
