返回

CSS + JS 动态雪花效果 | 一键复制代码,亲测有效

前端

使用 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 代码中,可以调整 sizecreateSnowflake 函数中的值来控制雪花的大小和数量。

2. 如何更改雪花颜色?

在 CSS 代码中的 .snowflake 类中,可以更改 background 属性来设置雪花颜色。

3. 如何更改雪花下落速度?

在 JavaScript 代码中的 moveSnowflakes 函数中,可以调整 speed 属性来控制雪花下落速度。

4. 如何更改雪花形状?

在 CSS 代码中的 .snowflake 类中,可以更改 border-radius 属性来调整雪花形状。

5. 如何使雪花在风中漂移?

在 JavaScript 代码中,可以添加以下代码来实现雪花随风飘动效果:

snowflake.x += Math.random() * 2 - 1;

总结

通过遵循这些简单的步骤,你可以在你的网站上实现一个迷人的动态雪花效果,为你的访客营造一个难忘的节日气氛。赶快试试吧,让你的网站在这个冬天焕发不一样的色彩!