以下是一个简单的JavaScript鼠标特效示例代码,实现当鼠标在页面上移动时,显示一个跟随鼠标的彩色圆圈效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标特效</title>
<style>
/* 设置页面全屏并且隐藏滚动条 */
body {
margin: 0;
padding: 0;
overflow: hidden;
height: 100vh;
background-color: #000;
}
/* 定义跟随鼠标的圆圈样式 */
.circle {
position: absolute;
width: 30px;
height: 30px;
border-radius: 50%;
pointer-events: none;
transform: translate(-50%, -50%);
opacity: 0;
transition: opacity 0.3s, width 0.3s, height 0.3s;
}
</style>
</head>
<body>
<script>
// 监听鼠标移动事件
document.addEventListener('mousemove', function (e) {
// 获取鼠标的坐标
let x = e.clientX;
let y = e.clientY;
// 检查是否已经存在圆圈元素
let circle = document.querySelector('.circle');
if (!circle) {
// 如果不存在则创建一个新的圆圈元素
circle = document.createElement('div');
circle.classList.add('circle');
document.body.appendChild(circle);
}
// 设置圆圈的位置
circle.style.left = x + 'px';
circle.style.top = y + 'px';
// 随机生成圆圈的颜色
let color = '#' + Math.floor(Math.random() * 16777215).toString(16);
circle.style.backgroundColor = color;
// 设置圆圈的透明度和大小变化效果
circle.style.opacity = 1;
circle.style.width = '30px';
circle.style.height = '30px';
// 使用setTimeout在一定时间后隐藏圆圈并恢复初始大小
setTimeout(() => {
circle.style.opacity = 0;
circle.style.width = '0px';
circle.style.height = '0px';
}, 1000);
});
</script>
</body>
</html>
一、基础概念
addEventListener
方法用于在指定的元素上监听特定的事件。在这个例子中,我们在document
(整个文档)上监听mousemove
事件,这个事件会在鼠标在页面内移动时触发。document.createElement
创建新的div
元素(圆圈),使用appendChild
将其添加到body
中。还可以通过修改元素的style
属性来改变其外观,如位置、颜色、大小和透明度等。二、优势
三、应用场景
四、可能出现的问题及解决方法
border - radius
属性,在一些旧浏览器中可能需要添加-webkit -
前缀。领取专属 10元无门槛券
手把手带您无忧上云