原生JS实现鼠标滑动撒爱心特效
作者:木棉时间:2026-10-24 17:02:06浏览:345
本文分享一个使用原生JavaScript实现的鼠标滑动撒爱心特效。通过监听鼠标移动事件,动态创建并定位爱心元素,利用CSS3实现缩放旋转动画,并在指定时间后自动移除节点,确保页面性能。代码包含完整的HTML结构与JavaScript逻辑,适合前端开发者参考学习。
鼠标滑动撒爱心特效实现
本文分享一个使用原生JavaScript实现的鼠标滑动撒爱心特效,具体效果如下:

以下是代码实现,欢迎大家复制粘贴和收藏。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>原生JS实现鼠标滑动撒爱心特效</title>
<style>
* {
margin: 0;
padding: 0;
font-family: '微软雅黑', sans-serif;
}
body {
height: 100vh;
background: #000;
overflow: hidden;
}
span {
position: absolute;
background: url(heart.png);
pointer-events: none;
width: 100px;
height: 100px;
background-size: cover;
transform: translate(-50%, -50%);
animation: animate 2s linear infinite;
}
@keyframes animate {
0% {
transform: translate(-50%, -50%);
opacity: 1;
filter: hue-rotate(0deg);
}
100% {
transform: translate(-50%, -1000%);
opacity: 0;
filter: hue-rotate(360deg);
}
}
</style>
</head>
<body>
<script>
document.addEventListener('mousemove', (e) => {
let body = document.querySelector('body')
let heart = document.createElement('span')
let x = e.offsetX
let y = e.offsetY
heart.style.left = x + 'px'
heart.style.top = y + 'px'
let size = Math.random() * 100
heart.style.width = size + 'px'
heart.style.height = size + 'px'
body.appendChild(heart)
setTimeout(() => {
heart.remove()
}, 3000)
})
</script>
</body>
</html>
以下是上面代码中引入的图片heart.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
