返回
CSS + JS 动态雪花效果 | 一键复制代码,亲测有效
前端
2023-09-06 22:08:09
使用 CSS + JS 营造迷人的圣诞雪花效果
为你的网站增添节日气氛
每逢佳节,我们都会怀着一份期盼,希望在寒冷的冬日里邂逅美丽的雪花。如今,借助先进的 CSS 和 JS 技术,我们可以在你的网站上创造出令人惊叹的动态雪花效果,为你的访客带来身临其境的节日体验。
实现步骤
1. HTML 代码
在你的 HTML 页面中添加以下代码:
<canvas id="snowflakes"></canvas>
<script src="snowflakes.js"></script>
2. CSS 代码
在你的 CSS 文件中添加以下代码:
canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.snowflake {
position: absolute;
top: 0;
left: 0;
width: 10px;
height: 10px;
border-radius: 50%;
background: white;
animation: fall 10s infinite linear;
}
@keyframes fall {
from {
top: 0;
}
to {
top: 100%;
}
}
3. JavaScript 代码
在你的 JavaScript 文件中添加以下代码:
var canvas = document.getElementById('snowflakes');
var ctx = canvas.getContext('2d');
var snowflakes = [];
function createSnowflake() {
var snowflake = {
x: Math.random() * window.innerWidth,
y: 0,
size: Math.random() * 5 + 5,
speed: Math.random() * 3 + 1
};
snowflakes.push(snowflake);
}
function drawSnowflake(snowflake) {
ctx.beginPath();
ctx.arc(snowflake.x, snowflake.y, snowflake.size, 0, 2 * Math.PI);
ctx.fillStyle = 'white';
ctx.fill();
}
function moveSnowflakes() {
for (var i = 0; i < snowflakes.length; i++) {
var snowflake = snowflakes[i];
snowflake.y += snowflake.speed;
if (snowflake.y > window.innerHeight) {
snowflake.y = 0;
}
}
}
function draw() {
ctx.clearRect(0, 0, window.innerWidth, window.innerHeight);
for (var i = 0; i < snowflakes.length; i++) {
var snowflake = snowflakes[i];
drawSnowflake(snowflake);
}
moveSnowflakes();
requestAnimationFrame(draw);
}
createSnowflake();
draw();
效果预览
现在,当你打开你的网页时,就会看到满屏飘落的雪花啦!是不是很美呢?
常见问题解答
1. 如何更改雪花大小和数量?
在 JavaScript 代码中,可以调整 size
和 createSnowflake
函数中的值来控制雪花的大小和数量。
2. 如何更改雪花颜色?
在 CSS 代码中的 .snowflake
类中,可以更改 background
属性来设置雪花颜色。
3. 如何更改雪花下落速度?
在 JavaScript 代码中的 moveSnowflakes
函数中,可以调整 speed
属性来控制雪花下落速度。
4. 如何更改雪花形状?
在 CSS 代码中的 .snowflake
类中,可以更改 border-radius
属性来调整雪花形状。
5. 如何使雪花在风中漂移?
在 JavaScript 代码中,可以添加以下代码来实现雪花随风飘动效果:
snowflake.x += Math.random() * 2 - 1;
总结
通过遵循这些简单的步骤,你可以在你的网站上实现一个迷人的动态雪花效果,为你的访客营造一个难忘的节日气氛。赶快试试吧,让你的网站在这个冬天焕发不一样的色彩!