Canvas如何做个雪花屏版404的实现
<canvas id="snowCanvas" width="300" height="300"></canvas>
<div class="error-message">404 Not Found</div>
body {
text-align: center;
}
.error-message {
font-size: 36px;
margin-top: 50px;
}
const canvas = document.getElementById('snowCanvas');
const ctx = canvas.getContext('2d');
// 雪花数组
const snowflakes = [];
// 雪花对象
function Snowflake() {
this.x = Math.random() * canvas.width;
this.y = Math.random() * canvas.height;
this.radius = Math.random() * 3 + 1;
this.speed = Math.random() * 5 + 1;
}
// 绘制雪花
Snowflake.prototype.draw = function() {
ctx.beginPath();
ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2);
ctx.fillStyle = 'white';
ctx.fi 1. github.com
github.comll();
};
// 更新雪花位置
Snowflake.prototype.update = function() {
this.y += this.speed;
if (this.y > canvas.height) {
this.y = 0;
this.x = Math.random() * canvas.width;
}
};
// 创建雪花
function createSnowflakes(count) {
for (let i = 0; i < count; i++) {
snowflakes.push(new Snowflake());
}
}
// 动画循环
function animate() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
snowflakes.forEach(snowflake => {
snowflake.update();
snowflake.draw();
});
requestAnimationFr 1. github.com
github.comame(animate);
}
// 初始化
createSnowflakes(100); // 创建100个雪花
animate();
arc
方法绘制圆形,模拟雪花。createSnowflakes
函数创建指定数量的雪花。requestAnimationFrame
实现动画循环,在每次帧中清除画布,更新雪花位置并重新绘制。radius
和speed
属性,可以控制雪花的尺寸和下落速度。这段代码将创建一个充满雪花的Canvas画布,并不断更新雪花的动画。搭配404错误提示,可以营造出一种梦幻而温馨的404页面效果。
更多创意
注意:
通过以上步骤和优化,你可以轻松地使用Canvas创建一个漂亮的雪花屏404页面,为用户带来更好的体验。