🎨 style: code format
This commit is contained in:
parent
e0f4461fe5
commit
219bb6db37
@ -43,7 +43,7 @@ function setParticuleDirection(p) {
|
|||||||
let radius = [-1, 1][anime.random(0, 1)] * value;
|
let radius = [-1, 1][anime.random(0, 1)] * value;
|
||||||
return {
|
return {
|
||||||
x: p.x + radius * Math.cos(angle),
|
x: p.x + radius * Math.cos(angle),
|
||||||
y: p.y + radius * Math.sin(angle)
|
y: p.y + radius * Math.sin(angle),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ function animateParticules(x, y) {
|
|||||||
radius: 0.1,
|
radius: 0.1,
|
||||||
duration: anime.random(minAnimeDuration, maxAnimeDuration),
|
duration: anime.random(minAnimeDuration, maxAnimeDuration),
|
||||||
easing: "easeOutExpo",
|
easing: "easeOutExpo",
|
||||||
update: renderParticule
|
update: renderParticule,
|
||||||
})
|
})
|
||||||
.add({
|
.add({
|
||||||
targets: circle,
|
targets: circle,
|
||||||
@ -122,12 +122,12 @@ function animateParticules(x, y) {
|
|||||||
alpha: {
|
alpha: {
|
||||||
value: 0,
|
value: 0,
|
||||||
easing: "linear",
|
easing: "linear",
|
||||||
duration: anime.random(600, 800)
|
duration: anime.random(600, 800),
|
||||||
},
|
},
|
||||||
duration: anime.random(1200, 1800),
|
duration: anime.random(1200, 1800),
|
||||||
easing: "easeOutExpo",
|
easing: "easeOutExpo",
|
||||||
update: renderParticule,
|
update: renderParticule,
|
||||||
offset: 0
|
offset: 0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ let render = anime({
|
|||||||
duration: Infinity,
|
duration: Infinity,
|
||||||
update: function () {
|
update: function () {
|
||||||
ctx.clearRect(0, 0, canvasEl.width, canvasEl.height);
|
ctx.clearRect(0, 0, canvasEl.width, canvasEl.height);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
|
@ -1,51 +1,62 @@
|
|||||||
class Circle {
|
class Circle {
|
||||||
constructor({ origin, speed, color, angle, context }) {
|
constructor({ origin, speed, color, angle, context }) {
|
||||||
this.origin = origin
|
this.origin = origin;
|
||||||
this.position = { ...this.origin }
|
this.position = { ...this.origin };
|
||||||
this.color = color
|
this.color = color;
|
||||||
this.speed = speed
|
this.speed = speed;
|
||||||
this.angle = angle
|
this.angle = angle;
|
||||||
this.context = context
|
this.context = context;
|
||||||
this.renderCount = 0
|
this.renderCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
draw() {
|
draw() {
|
||||||
this.context.fillStyle = this.color
|
this.context.fillStyle = this.color;
|
||||||
this.context.beginPath()
|
this.context.beginPath();
|
||||||
this.context.arc(this.position.x, this.position.y, 2, 0, Math.PI * 2)
|
this.context.arc(this.position.x, this.position.y, 2, 0, Math.PI * 2);
|
||||||
this.context.fill()
|
this.context.fill();
|
||||||
}
|
}
|
||||||
|
|
||||||
move() {
|
move() {
|
||||||
this.position.x = (Math.sin(this.angle) * this.speed) + this.position.x
|
this.position.x = Math.sin(this.angle) * this.speed + this.position.x;
|
||||||
this.position.y = (Math.cos(this.angle) * this.speed) + this.position.y + (this.renderCount * 0.3)
|
this.position.y =
|
||||||
this.renderCount++
|
Math.cos(this.angle) * this.speed +
|
||||||
|
this.position.y +
|
||||||
|
this.renderCount * 0.3;
|
||||||
|
this.renderCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Boom {
|
class Boom {
|
||||||
constructor({ origin, context, circleCount = 10, area }) {
|
constructor({ origin, context, circleCount = 10, area }) {
|
||||||
this.origin = origin
|
this.origin = origin;
|
||||||
this.context = context
|
this.context = context;
|
||||||
this.circleCount = circleCount
|
this.circleCount = circleCount;
|
||||||
this.area = area
|
this.area = area;
|
||||||
this.stop = false
|
this.stop = false;
|
||||||
this.circles = []
|
this.circles = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
randomArray(range) {
|
randomArray(range) {
|
||||||
const length = range.length
|
const length = range.length;
|
||||||
const randomIndex = Math.floor(length * Math.random())
|
const randomIndex = Math.floor(length * Math.random());
|
||||||
return range[randomIndex]
|
return range[randomIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
randomColor() {
|
randomColor() {
|
||||||
const range = ['8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
|
const range = ["8", "9", "A", "B", "C", "D", "E", "F"];
|
||||||
return '#' + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range)
|
return (
|
||||||
|
"#" +
|
||||||
|
this.randomArray(range) +
|
||||||
|
this.randomArray(range) +
|
||||||
|
this.randomArray(range) +
|
||||||
|
this.randomArray(range) +
|
||||||
|
this.randomArray(range) +
|
||||||
|
this.randomArray(range)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
randomRange(start, end) {
|
randomRange(start, end) {
|
||||||
return (end - start) * Math.random() + start
|
return (end - start) * Math.random() + start;
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
@ -55,42 +66,45 @@ class Circle {
|
|||||||
origin: this.origin,
|
origin: this.origin,
|
||||||
color: this.randomColor(),
|
color: this.randomColor(),
|
||||||
angle: this.randomRange(Math.PI - 1, Math.PI + 1),
|
angle: this.randomRange(Math.PI - 1, Math.PI + 1),
|
||||||
speed: this.randomRange(1, 6)
|
speed: this.randomRange(1, 6),
|
||||||
})
|
});
|
||||||
this.circles.push(circle)
|
this.circles.push(circle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
move() {
|
move() {
|
||||||
this.circles.forEach((circle, index) => {
|
this.circles.forEach((circle, index) => {
|
||||||
if (circle.position.x > this.area.width || circle.position.y > this.area.height) {
|
if (
|
||||||
return this.circles.splice(index, 1)
|
circle.position.x > this.area.width ||
|
||||||
|
circle.position.y > this.area.height
|
||||||
|
) {
|
||||||
|
return this.circles.splice(index, 1);
|
||||||
}
|
}
|
||||||
circle.move()
|
circle.move();
|
||||||
})
|
});
|
||||||
if (this.circles.length == 0) {
|
if (this.circles.length == 0) {
|
||||||
this.stop = true
|
this.stop = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
draw() {
|
draw() {
|
||||||
this.circles.forEach(circle => circle.draw())
|
this.circles.forEach((circle) => circle.draw());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CursorSpecialEffects {
|
class CursorSpecialEffects {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.computerCanvas = document.createElement('canvas')
|
this.computerCanvas = document.createElement("canvas");
|
||||||
this.renderCanvas = document.createElement('canvas')
|
this.renderCanvas = document.createElement("canvas");
|
||||||
|
|
||||||
this.computerContext = this.computerCanvas.getContext('2d')
|
this.computerContext = this.computerCanvas.getContext("2d");
|
||||||
this.renderContext = this.renderCanvas.getContext('2d')
|
this.renderContext = this.renderCanvas.getContext("2d");
|
||||||
|
|
||||||
this.globalWidth = window.innerWidth
|
this.globalWidth = window.innerWidth;
|
||||||
this.globalHeight = window.innerHeight
|
this.globalHeight = window.innerHeight;
|
||||||
|
|
||||||
this.booms = []
|
this.booms = [];
|
||||||
this.running = false
|
this.running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMouseDown(e) {
|
handleMouseDown(e) {
|
||||||
@ -99,56 +113,68 @@ class Circle {
|
|||||||
context: this.computerContext,
|
context: this.computerContext,
|
||||||
area: {
|
area: {
|
||||||
width: this.globalWidth,
|
width: this.globalWidth,
|
||||||
height: this.globalHeight
|
height: this.globalHeight,
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
boom.init()
|
boom.init();
|
||||||
this.booms.push(boom)
|
this.booms.push(boom);
|
||||||
this.running || this.run()
|
this.running || this.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
handlePageHide() {
|
handlePageHide() {
|
||||||
this.booms = []
|
this.booms = [];
|
||||||
this.running = false
|
this.running = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
const style = this.renderCanvas.style
|
const style = this.renderCanvas.style;
|
||||||
style.position = 'fixed'
|
style.position = "fixed";
|
||||||
style.top = style.left = 0
|
style.top = style.left = 0;
|
||||||
style.zIndex = '99999'
|
style.zIndex = "99999";
|
||||||
style.pointerEvents = 'none'
|
style.pointerEvents = "none";
|
||||||
|
|
||||||
style.width = this.renderCanvas.width = this.computerCanvas.width = this.globalWidth
|
style.width =
|
||||||
style.height = this.renderCanvas.height = this.computerCanvas.height = this.globalHeight
|
this.renderCanvas.width =
|
||||||
|
this.computerCanvas.width =
|
||||||
|
this.globalWidth;
|
||||||
|
style.height =
|
||||||
|
this.renderCanvas.height =
|
||||||
|
this.computerCanvas.height =
|
||||||
|
this.globalHeight;
|
||||||
|
|
||||||
document.body.append(this.renderCanvas)
|
document.body.append(this.renderCanvas);
|
||||||
|
|
||||||
window.addEventListener('mousedown', this.handleMouseDown.bind(this))
|
window.addEventListener("mousedown", this.handleMouseDown.bind(this));
|
||||||
window.addEventListener('pagehide', this.handlePageHide.bind(this))
|
window.addEventListener("pagehide", this.handlePageHide.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
run() {
|
run() {
|
||||||
this.running = true
|
this.running = true;
|
||||||
if (this.booms.length == 0) {
|
if (this.booms.length == 0) {
|
||||||
return this.running = false
|
return (this.running = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
requestAnimationFrame(this.run.bind(this))
|
requestAnimationFrame(this.run.bind(this));
|
||||||
|
|
||||||
this.computerContext.clearRect(0, 0, this.globalWidth, this.globalHeight)
|
this.computerContext.clearRect(0, 0, this.globalWidth, this.globalHeight);
|
||||||
this.renderContext.clearRect(0, 0, this.globalWidth, this.globalHeight)
|
this.renderContext.clearRect(0, 0, this.globalWidth, this.globalHeight);
|
||||||
|
|
||||||
this.booms.forEach((boom, index) => {
|
this.booms.forEach((boom, index) => {
|
||||||
if (boom.stop) {
|
if (boom.stop) {
|
||||||
return this.booms.splice(index, 1)
|
return this.booms.splice(index, 1);
|
||||||
}
|
}
|
||||||
boom.move()
|
boom.move();
|
||||||
boom.draw()
|
boom.draw();
|
||||||
})
|
});
|
||||||
this.renderContext.drawImage(this.computerCanvas, 0, 0, this.globalWidth, this.globalHeight)
|
this.renderContext.drawImage(
|
||||||
|
this.computerCanvas,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
this.globalWidth,
|
||||||
|
this.globalHeight
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const cursorSpecialEffects = new CursorSpecialEffects()
|
const cursorSpecialEffects = new CursorSpecialEffects();
|
||||||
cursorSpecialEffects.init()
|
cursorSpecialEffects.init();
|
||||||
|
Loading…
Reference in New Issue
Block a user