鼠标跟随特效 html+css+js实现

效果图: 

 

css样式 

<style>
        div{
            width: 10px;
            height: 10px;
            background-color: red;
            border: 1px solid #000;
            position: absolute;
        }
</style>

html结构

<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>

js代码:

   <script>
        var oDivs = document.querySelectorAll("div");
        document.onmousemove = function(event){
            var event = event || window.event;
            oDivs[0].style.top = event.clientY + "px";
            oDivs[0].style.left = event.clientX + "px";
            for(var i = oDivs.length-1;i > 0;i--){
                oDivs[i].style.top = oDivs[i-1].offsetTop + "px";
                oDivs[i].style.left = oDivs[i-1].offsetLeft + "px";
            }
        }
    </script>

新手小白,望大佬们多多指教

要在HTMLCSSJS中创建跟随鼠标移动洒落星星的特效,你需要组合使用一些基本的技术。下面是一个简单的步骤说明: **HTML:** 创建一个空的画布元素和一个div来显示星星效果。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>星尘效果</title> <link rel="stylesheet" href="styles.css"> </head> <body> <canvas id="star-canvas" width="600" height="400"></canvas> <div id="star-trail"></div> <script src="script.js"></script> </body> </html> ``` **CSS:** 样式星星和轨迹效果。 ```css #star-trail { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: rgba(0, 0, 0, 0.5); } .canvas-effects { display: block; position: relative; } ``` **JavaScript (ES6):** 使用Canvas API和requestAnimationFrame来模拟星星生成并跟踪鼠标位置。 ```javascript const canvas = document.getElementById('star-canvas'); const ctx = canvas.getContext('2d'); let mouseX = 0; let mouseY = 0; let starTrailLength = 100; // 星星轨迹长度 canvas.addEventListener('mousemove', e => { mouseX = e.clientX; mouseY = e.clientY; }); function animate() { requestAnimationFrame(animate); // 清除旧的星星轨迹 ctx.clearRect(0, 0, canvas.width, canvas.height); // 创建新的星星 for (let i = 0; i < starTrailLength; i++) { const x = mouseX - (i / starTrailLength) * canvas.width; const y = mouseY; ctx.beginPath(); ctx.arc(x, y, 2, 0, Math.PI*2, false); ctx.fillStyle = '#fff'; ctx.fill(); } // 更新星星轨迹 starTrailLength += 1; if (starTrailLength > canvas.width) { starTrailLength = 0; } } animate(); ``` 在这个示例中,当鼠标移动时,会在画布上创建一系列白色圆形,形成跟随鼠标的星尘轨迹。每次动画循环,都会增加星星轨迹的长度,当达到屏幕宽度时,会从开始处清除,保持视觉效果的连贯性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值