Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
body { margin: 0; overflow: hidden; cursor: pointer; }
JavaScript
const canvas = document.querySelector('canvas'); const c = canvas.getContext('2d'); canvas.width = innerWidth; canvas.height = innerHeight; // Variables const mouse = { x: innerWidth / 2, y: innerHeight / 2 - 90 }; const colors = [ '#ee3d2b', '#ec5252', '#ff007f', '#ec5252', ]; // Event Listeners addEventListener('mousemove', event => { mouse.x = event.clientX; mouse.y = event.clientY; }); addEventListener('resize', () => { canvas.width = innerWidth; canvas.height = innerHeight; init(); }); function randomIntFromRange(min,max) { return Math.floor(Math.random() * (max - min + 1) + min); } function randomColor(colors) { return colors[Math.floor(Math.random() * colors.length)]; } function Particle(x, y, radius, color) { const distance = randomIntFromRange(0, 190); this.x = x; this.y = y; this.radius = radius; this.color = color; this.radians = Math.random() * Math.PI * 2; this.velocity = 0.08; this.distanceFromCenter = { x: distance, y: distance }; this.prevDistanceFromCenter = { x: distance, y: distance }; this.lastMouse = {x: x, y: y}; this.update = () => { const lastPoint = {x: this.x, y: this.y}; this.radians += this.velocity; this.lastMouse.x += (mouse.x - this.lastMouse.x) * 0.05; this.lastMouse.y += (mouse.y - this.lastMouse.y) * 0.05; // Circular Motion this.distanceFromCenter.x = this.prevDistanceFromCenter.x + Math.sin(this.radians) * 270; this.distanceFromCenter.y = this.prevDistanceFromCenter.x + Math.sin(this.radians) * 60; this.x = this.lastMouse.x + Math.cos(this.radians) * this.distanceFromCenter.x; this.y = this.lastMouse.y + Math.sin(this.radians) * this.distanceFromCenter.y; this.draw(lastPoint); }; this.draw = lastPoint => { c.beginPath(); c.strokeStyle = this.color; c.lineWidth = this.radius; c.moveTo(lastPoint.x, lastPoint.y); c.lineTo(this.x, this.y); c.stroke(); c.closePath(); }; } let particles; function init() { particles = []; for (let i = 0; i < 550; i++) { const radius = (Math.random() * 2) + 1; particles.push(new Particle(canvas.width / 2, canvas.height / 2, radius, randomColor(colors))); } } function animate() { requestAnimationFrame(animate); c.fillStyle = "#b1e4e2"; c.fillRect(0, 0, canvas.width, canvas.height); particles.forEach(particle => { particle.update(); }); } init(); animate();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>HTML5 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号