首页 > 其他分享 >使用html5写一个背景粒子特效

使用html5写一个背景粒子特效

时间:2024-12-25 09:52:10浏览次数:3  
标签:特效 canvas 粒子 random ctx height width html5 Math

创建一个背景粒子特效需要综合运用HTML5、CSS3和JavaScript。以下是一个简单的示例,演示如何使用HTML5的<canvas>元素和JavaScript来创建一个粒子动画背景。

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="styles.css">
</head>
<body>
    <canvas id="particleCanvas"></canvas>
    <script src="script.js"></script>
</body>
</html>

CSS (styles.css)

body, html {
    margin: 0;
    padding: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
}

canvas {
    position: absolute;
    top: 0;
    left: 0;
}

JavaScript (script.js)

const canvas = document.getElementById('particleCanvas');
const ctx = canvas.getContext('2d');

canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

class Particle {
    constructor() {
        this.x = Math.random() * canvas.width;
        this.y = Math.random() * canvas.height;
        this.size = Math.random() * 5 + 1;
        this.speedX = (Math.random() - 0.5) * 4;
        this.speedY = (Math.random() - 0.5) * 4;
    }

    draw() {
        ctx.fillStyle = 'rgba(173,216,230, 0.8)';
        ctx.strokeStyle = 'rgba(173,216,230, 0.8)';
        ctx.lineWidth = 2;
        ctx.beginPath();
        ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
        ctx.closePath();
        ctx.fill();
    }

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

        if (this.x < 0 || this.x > canvas.width || this.y < 0 || this.y > canvas.height) {
            this.x = Math.random() * canvas.width;
            this.y = Math.random() * canvas.height;
        }
    }
}

const particles = [];

for (let i = 0; i < 100; i++) {
    particles.push(new Particle());
}

function animate() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);

    for (let i = 0; i < particles.length; i++) {
        particles[i].draw();
        particles[i].update();
    }

    requestAnimationFrame(animate);
}

animate();

window.addEventListener('resize', () => {
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
});

这段代码创建了一个包含100个粒子的系统,每个粒子都有自己的位置、大小和速度。粒子在画布上移动,并在碰到画布边缘时重新定位到随机位置。通过调整粒子的属性(如颜色、大小和速度),你可以自定义动画的外观和行为。

标签:特效,canvas,粒子,random,ctx,height,width,html5,Math
From: https://www.cnblogs.com/ai888/p/18629472

相关文章

  • html5中的meta标签keywords有什么作用?
    在HTML5中,<meta>标签的keywords属性曾经被用来为网页提供关键词,以便搜索引擎能够更好地理解和索引网页内容。然而,这个属性的实际作用在近年来已经大大减弱。过去,搜索引擎会依赖keywords属性来了解网页的主题和内容。网站开发者会在keywords属性中填入一系列与网页内容相关的关键......
  • html5中的meta标签revised有什么作用?
    在HTML5中,并没有一个官方定义的revised属性或meta标签。可能你是指的meta标签中的content属性被用来表示页面的修订日期或版本号,但这并不是HTML5标准中的一部分。通常,meta标签被用于提供有关HTML文档的元数据。这些元数据不会显示在页面上,但是对于机器是可读的。它可用于浏览器(如......
  • html5中的meta标签scheme有什么作用?
    在HTML5中,<meta>标签的scheme属性主要用于定义用于解释content属性值的方案。然而,这个属性在HTML5中已经不再被推荐使用,并且在HTML5规范中已被移除。在HTML4.01或更早的版本中,scheme属性可能更常见。在早期的HTML版本中,scheme属性被用来指定一个解释content属性中所包......
  • HTML5期末大作业:旅游网页设计——西安旅游9页(代码质量好) 学生DW网页设计作业源码 we
    ......
  • 使用HTML5绘制一个发光的灯泡
    在HTML5中,你可以使用<canvas>元素与JavaScript来绘制一个发光的灯泡。下面是一个简单的示例,展示了如何创建一个基础的发光灯泡效果:HTML结构:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="......
  • 使用CSS3绘制一只卡通小蜜蜂的动画特效
    要使用CSS3来绘制一只卡通小蜜蜂并添加动画特效,你需要利用CSS的各种属性,包括border-radius、transform、animation和@keyframes等。以下是一个简单的示例,展示了如何创建一个小蜜蜂并为其添加飞行动画。HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • 使用HTML5绘制一个高脚杯
    在前端开发中,使用HTML5来绘制图形主要依赖于<canvas>元素和JavaScript。以下是一个简单的示例,展示了如何使用HTML5和JavaScript来绘制一个类似高脚杯的形状:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"cont......
  • 717. 大学生HTML5期末大作业 ―【北京冬奥会体育主题网页(9页)】 Web前端网页制作 htm
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.js五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么......
  • 纯js文字洗牌式切换特效插件
    ShuffleText是一款纯js文字洗牌式切换特效插件。该插件在鼠标滑过指定的文本时,文字会不停的逐个进行翻转,类似洗牌效果,非常炫酷。在线演示 下载 使用方法在页面中引入shuffle-text.js文件。<scriptsrc="path/to/shuffle-text.js"> HTML结构ShuffleText插件基本的HTM......
  • HTML5期末大作业:电商网站设计——仿淘宝电商网站管理系统21页(含毕业设计论文7500字)
    HTML5期末大作业:电商网站设计——仿淘宝电商网站管理系统21页(含毕业设计论文7500字)HTML+CSS+JavaScript常见网页设计作业题材有个人、美食、公司、学校、旅游、电商、宠物、电器、茶叶、家居、酒店、舞蹈、动漫、明星、服装、体育、化妆品、物流、......