Particle animation has always been a relatively common type of HTML5 Canvas animation, and many developers also prefer to do this type of animation special effects. This time I bring you an HTML5 Canvas-based mouse over particle extrusion animation. There are many particle points on the page to form a canvas. When you move the mouse over this canvas, the particles will squeeze each other. Make your mouse unable to touch these particle points.
Advertisement
class Particle {
constructor(k, i, j) {
this.i = i;
this.j = j;
this.init();
this.x = this.x0;
this.y = this.y0;
this.pos = posArray.subarray(k * 3, k * 3 + 3);
this.pointer = pointer;
}
init() {
this.x0 = canvas.width * 0.5 + this.i * canvas.width / 240;
this.y0 = canvas.height * 0.5 + this.j * canvas.height / 160;
}
move() {
const dx = this.pointer.x - this.x;
const dy = this.pointer.y - this.y;
const d = Math.sqrt(dx * dx + dy * dy);
const s = 1000 / d;
this.x += -s * (dx / d) + (this.x0 - this.x) * 0.02;
this.y += -s * (dy / d) + (this.y0 - this.y) * 0.02;
// update buffer position
this.pos[0] = this.x;
this.pos[1] = this.y;
this.pos[2] = 0.15 * s * s;
}
}
html, body {
position: absolute;
overflow: hidden;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background:#000;
touch-action: none;
content-zooming: none;
}
canvas {
position: absolute;
width: 100%;
height: 100%;
background:#000;
}
Advertisement