Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
html, body { height: 100%; width: 100%;background-color: #1F1F1F;overflow: hidden }
JavaScript
const canvas = document.querySelector('canvas'); const c = canvas.getContext('2d'); const mouse = { x: window.innerWidth / 2, y: window.innerHeight / 2 }; const colours = [ '#2185C5', '#7ECEFD', '#FFF6E5', '#FF7F66']; const limit = 50; // Event listeners window.addEventListener('mousemove', function (event) { mouse.x = event.clientX; mouse.y = event.clientY; }); window.addEventListener('resize', setCanvasDimensions); window.addEventListener('click', function () { // explode? }); // Utility functions function setCanvasDimensions() { canvas.height = window.innerHeight; canvas.width = window.innerWidth; } function randomIntFromRange(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function randomColour() { return colours[randomIntFromRange(0, colours.length)]; } function Particle({ x, y, velocity, radius, colour } = {}) { this.x = x; this.y = y; this.velocity = velocity || 0.05; this.radius = radius; this.colour = randomColour(); this.radians = Math.random() * Math.PI * 2; this.distanceFromCenter = randomIntFromRange(50, 120); this.lastMouse = { x: x, y: y }; this.update = () => { const lastPoint = { x: this.x, y: this.y }; // Move points over time this.radians += this.velocity; // Drag effect this.lastMouse.x += (mouse.x - this.lastMouse.x) * 0.05; this.lastMouse.y += (mouse.y - this.lastMouse.y) * 0.05; // Circular motion this.x = this.lastMouse.x + Math.cos(this.radians) * this.distanceFromCenter; this.y = this.lastMouse.y + Math.sin(this.radians) * this.distanceFromCenter; this.draw(lastPoint); }; this.draw = lastPoint => { c.beginPath(); c.strokeStyle = this.colour; c.lineWidth = this.radius; c.moveTo(lastPoint.x, lastPoint.y); c.lineTo(this.x, this.y); c.stroke(); c.closePath(); }; } // Animation loop let particles = []; function animate() { requestAnimationFrame(animate); c.fillStyle = 'rgba(0, 0, 0, 0.2)'; c.fillRect(0, 0, canvas.width, canvas.height); particles.forEach(particle => { particle.update(); }); } // Implementation function init() { setCanvasDimensions(); particles = []; for (let i = 0; i < limit; i++) { const particle = new Particle({ x: canvas.width / 2, y: canvas.height / 2, radius: Math.random() * 2 + 1 }); particles.push(particle); } animate(); } init();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>粒子旋转-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号