Halo, ketemu lagi dengan saya 🙂 apa kabarnya ? semoga baik yah, amin.
Pada kesempatan kali ini saya akan bebrbagi tutorial mengenai cara Membuat Efek Salju Dengan HTML 5 dan Javascript Pada Website, kalian pasti sudah tau kan salju 😀 , Nah bagaimana kalo pada website kita terdapat efek salju ? pasti akan lebih menarik yah ? bagaimana cara membuatnya, yuk kita simak praktiknya berikut ini.
1. Buka dulu teks editornya, kemudian ketikan kode HTML berikut.
<canvas id="town" width="940" height="650"></canvas>
2. Setelah itu, lanjutkan untuk kode CSS, ketikan kode CSS berikut.
body {
background: url(img/pattern.png);
min-height: 100vh;
margin-top: 3rem;
font-family: 'Poiret One', cursive;
}
canvas {
box-sizing: border-box;
background-image: url(https://upload.wikimedia.org/wikipedia/commons/1/14/Maruoka-jo_Sakura.JPG);
background-size: cover;
border: 20px solid #111;
display: block;
margin: 0 auto;
width: 100%;
max-width: 640px;
box-shadow: 0px 0px 50px 1000px rgba(0,0,0,0.3);
}
3. Kalo sudah, lanjutkan kembali untuk kode javascript, ketikan kode javascript berikut.
var canvas = document.getElementById("town"),
ctx = canvas.getContext("2d"),
W = canvas.width,
H = canvas.height,
maxParticles = 25,
maxParticleSize = 8,
minParticleSize = 2,
maxMove = 1,
angle = 0,
particles = [];
for (var i = 0; i < maxParticles; i++) {
particles.push({
x: Math.random() * W,
y: Math.random() * H,
wh: Math.random() * maxParticleSize + minParticleSize
})
}
function draw() {
ctx.clearRect(0, 0, W, H);
ctx.beginPath();
for (var i = 0; i < maxParticles; i++) {
var p = particles[i];
ctx.moveTo(p.x, p.y);
ctx.rect(p.x, p.y, p.wh, p.wh);
var radgrad = ctx.createRadialGradient(p.x + p.wh/2,p.y + p.wh/2,0,p.x + p.wh/2,p.y + p.wh/2,p.wh/2);
radgrad.addColorStop(0, 'rgba(255, 255, 255, 1)');
radgrad.addColorStop(0.5, 'rgba(255, 255, 255, .8)');
radgrad.addColorStop(1, 'rgba(255,255,255,0)');
ctx.fillStyle = radgrad;
ctx.fill();
}
update();
}
function update() {
angle += 0.01;
for (var i = 0; i < maxParticles; i++) {
var p = particles[i];
p.y += Math.cos(angle) + p.wh/4;
p.x += Math.sin(angle) * 2;
if (p.x > W+maxMove || p.x < -maxMove || p.y > H) {
if (i%3 > 0) {
particles[i] = {x: Math.random() * W, y: -(maxMove), wh: p.wh };
} else {
if (Math.sin(angle) > 0) {
particles[i] = {x: -maxMove, y: Math.random()*H, wh: p.wh };
} else {
particles[i] = {x: W+maxMove, y: Math.random()*H, wh: p.wh };
}
}
}
}
requestAnimationFrame(draw);
}
draw();
4. Kalo sudah jangan lupa disimpan, kemudian jalankan di browsernya, dan lihat hasilnya. Selesai
Cukup mudah bukan, Baik selesai sudah tutorial mengenai cara Membuat Efek Salju Dengan HTML 5 dan Javascript Pada Website, semoga bermanfaat, amin.
Selamat mencoba.