舞い散る花びら
by Tenderfeel
HTML
<canvas id="canvas"></canvas>
CSS
body {
margin: 0;
overflow: hidden;
background-color: #f0f8ff;
}
canvas {
display: block;
}
JavaScript
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
let animationId = null;
function minMax(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 花びらのSVG画像3種類(base64エンコードされたデータURI)
const petalImages = [
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTgiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA1OCA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuODY2MjQgNy4yNjYwNkM0Ljg2NjI0IDcuMjY2MDYgLTguOTMzODQgMjYuNzg0IDEyLjczNDIgNDkuNDQyMUMzMC45NDAyIDY4LjQ4IDQ5Ljk3NTIgNTguODE0MSA1Mi41OTcyIDU0LjEyODFDNTUuMjE5MiA0OS40NDIxIDY1LjM5NTIgMzUuMTYwMSA0NS4zNTcyIDE0LjEzNzFDMjguMjcyMiAtMy43ODU5NCAxMi4yMTAyIDEuNTM4MDYgMTIuMjEwMiAxLjUzODA2TDEyLjczNDIgOC42MTkwNUw0Ljg2NjI0IDcuMjY2MDZaIiBmaWxsPSIjRkZDRkRFIi8+Cjwvc3ZnPgo=", // 花びら1のデータ
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjciIGhlaWdodD0iNjgiIHZpZXdCb3g9IjAgMCA2NyA2OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0Ljc4MjUgMTQuNjYxOUMtNC40NDM0OSAzOC41MTY5IDEuODA0NDggNjcuMDU5OSAxLjgwNDQ4IDY3LjA1OTlDNy45MDc0OCA1My40NDk5IDM5LjQ3MzUgNjAuMjMwOSA1NC4zMTA1IDQ2LjY1NjlDNzEuMzA4NSAzMS4xMDY5IDY3LjAwODUgMTUuMDAzOSA2MS4xMTk1IDcuODU2OTRDNTEuOTMyNSAtMy4yOTEwNiAyOC4yOTc1IC0yLjEwODA3IDE0Ljc4MjUgMTQuNjYxOVoiIGZpbGw9IiNGRkNGREUiLz4KPC9zdmc+Cg==", // 花びら2のデータ
...