Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
jq22
css
body{overflow: hidden;background-color: #1F1F1F;} #title { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 100px; border-top: 1px solid #fff; color: hsla(0,0%,100%,1.00); }
JavaScript
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); canvas.height = window.innerHeight; canvas.width = window.innerWidth; let particalArray = []; const numberOfParticales = 100; const titleElement = document.getElementById('title'); let titleMeasurement = titleElement.getBoundingClientRect(); let title = { x: titleMeasurement.left, y: titleMeasurement.top, width: titleMeasurement.width, height: 10, }; class Particle { constructor(x, y) { this.x = x; this.y = y; this.size = Math.random() * 15 + 1; this.weight = Math.random() * 1 + 1; this.directionX = -1; } update() { if (this.y > canvas.height) { this.y = 0 - this.size; this.weight = Math.random() * 1 + 1; this.x = Math.random() * canvas.width * 1.5; } this.weight += 0.01; this.y += this.weight; this.x += this.directionX; if ( this.x < title.x + title.width && this.x + this.size > title.x && this.y < title.y + title.height && this.y + this.size > title.y ) { this.y -= 4; this.weight *= -0.5; } } draw() { ctx.fillStyle = `hsl(${this.x}, 100%, 50%)`; ctx.beginPath(); ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2); ctx.closePath(); ctx.fill(); ctx.stroke(); } } function init() { particalArray = []; for (let i = 1; i < numberOfParticales; i += 1) { const x = Math.random() * canvas.width; const y = Math.random() * canvas.height; particalArray.push(new Particle(x, y)); } } init(); function animation() { ctx.fillStyle = 'rgba(0,0,0,0.09)'; ctx.fillRect(0, 0, canvas.width, canvas.height); particalArray.forEach((particle) => { particle.update(); particle.draw(); }); requestAnimationFrame(animation); } animation(); window.addEventListener('resize', () => { canvas.width = window.innerWidth; canvas.height = window.innerHeight; titleMeasurement = titleElement.getBoundingClientRect(); title = { x: titleMeasurement.left, y: titleMeasurement.top, width: titleMeasurement.width, height: 10, }; init(); });
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>canvas粒子小球重力掉落-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号