当前位置:实例文章 » HTML/CSS实例» [文章]css+js做随意移动的水滴背景

css+js做随意移动的水滴背景

发布人:shili8 发布时间:2024-11-07 09:07 阅读次数:0

**CSS + JS 实现随意移动的水滴背景**

在本文中,我们将使用 CSS 和 JavaScript 来实现一个随意移动的水滴背景。这个效果可以用来增强网页的视觉效果,给用户带来更好的浏览体验。

### HTML 结构首先,我们需要定义 HTML 的结构。我们会创建一个容器元素,用于放置我们的水滴背景。

html<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>随意移动的水滴背景</title>
 <link rel="stylesheet" href="style.css">
</head>
<body>
 <div class="water-container"></div>
 <script src="script.js"></script>
</body>
</html>

### CSS 样式接下来,我们需要定义 CSS 样式来实现水滴背景的效果。我们会使用 `linear-gradient` 来创建水滴的颜色渐变效果。
css/* style.css */
.water-container {
 position: absolute;
 top:0;
 left:0;
 width:100%;
 height:100vh;
 background-image: linear-gradient(to bottom, #3498db, #2ecc71);
}

.water-drop {
 position: absolute;
 border-radius:50%;
 background-color: #fff;
 box-shadow:0010px rgba(255,255,255,0.5);
}

### JavaScript 脚本现在,我们需要编写 JavaScript 脚本来实现水滴的随意移动效果。我们会使用 `requestAnimationFrame` 来更新水滴的位置。
javascript// script.jsclass WaterDrop {
 constructor(x, y) {
 this.x = x;
 this.y = y;
 this.radius = Math.random() *20 +10;
 this.speedX = Math.random() *2 -1;
 this.speedY = Math.random() *2 -1;
 }

 update() {
 this.x += this.speedX;
 this.y += this.speedY;

 if (this.x < 0 || this.x > window.innerWidth) {
 this.speedX *= -1;
 }
 if (this.y < 0 || this.y > window.innerHeight) {
 this.speedY *= -1;
 }
 }

 draw(ctx) {
 ctx.beginPath();
 ctx.arc(this.x, this.y, this.radius,0, Math.PI *2);
 ctx.fillStyle = '#fff';
 ctx.fill();
 }
}

let waterDrops = [];
let ctx;

function init() {
 const container = document.querySelector('.water-container');
 ctx = container.getContext('2d');

 for (let i =0; i < 100; i++) {
 const x = Math.random() * window.innerWidth;
 const y = Math.random() * window.innerHeight;
 waterDrops.push(new WaterDrop(x, y));
 }

 requestAnimationFrame(loop);
}

function loop() {
 ctx.clearRect(0,0, window.innerWidth, window.innerHeight);

 for (const drop of waterDrops) {
 drop.update();
 drop.draw(ctx);
 }

 requestAnimationFrame(loop);
}

init();

### 结果通过以上的 CSS 和 JavaScript 脚本,我们实现了一个随意移动的水滴背景。这个效果可以用来增强网页的视觉效果,给用户带来更好的浏览体验。

注意:上述代码示例仅供参考,请自行测试和调整以适应您的具体需求。

其他信息

其他资源

Top