【网页设计】春节页面背景模板

无偿下载地址:https://download.csdn.net/download/weixin_47040861/88811143


1.实现效果

2.代码

1.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="index.css">
</head><body><img src="./image/鞭炮.gif" class="gifL"><img src="./image/鞭炮.gif" class="gifR"><canvas id="canvas"></canvas><div class="middle"></div></body></html><script src="./index.js"></script>

2.css

*{margin: 0;padding: 0;
}
html,body{height: 100%;
}
body{background-image: url(./image/bg.png);background-size: 100% 100%;
}
.gifL,.gifR{position: absolute;height: 100vh;
}
.gifR{right: 0;
}
#canvas{position: absolute;z-index: -1;
}
.middle{height: 100vh;width: 100vh;margin: 0 auto;position: relative;text-align: center;background-color: rgb(255, 255, 255,0.5);/*颜色*/
}

3.JavaScript

window.addEventListener("resize", resizeCanvas, false);window.addEventListener("DOMContentLoaded", onLoad, false);window.requestAnimationFrame =window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window.msRequestAnimationFrame ||function (callback) {window.setTimeout(callback, 1000 / 60);};var canvas, ctx, w, h, particles = [], probability = 0.02,xPoint, yPoint;function onLoad() {canvas = document.getElementById("canvas");ctx = canvas.getContext("2d");resizeCanvas();drawBackgroundImage();window.requestAnimationFrame(updateWorld);}function resizeCanvas() {if (!!canvas) {w = canvas.width = window.innerWidth;h = canvas.height = window.innerHeight;}}function updateWorld() {update();paint();window.requestAnimationFrame(updateWorld);}function update() {if (particles.length < 500 && Math.random() < probability) {createFirework();}var alive = [];for (var i = 0; i < particles.length; i++) {if (particles[i].move()) {alive.push(particles[i]);}}particles = alive;}function paint() {ctx.globalCompositeOperation = 'source-over';ctx.clearRect(0, 0, w, h);drawBackgroundImage();ctx.globalCompositeOperation = 'lighter';for (var i = 0; i < particles.length; i++) {particles[i].draw(ctx);}}function drawBackgroundImage() {var backgroundImage = new Image();backgroundImage.src = 'image/bg.png';ctx.drawImage(backgroundImage, 0, 0, w, h);}function createFirework() {xPoint = Math.random() * (w - 200) + 100;yPoint = Math.random() * (h - 200) + 100;var nFire = Math.random() * 50 + 100;var c = "rgb(" + (~~(Math.random() * 200 + 55)) + ","+ (~~(Math.random() * 200 + 55)) + "," + (~~(Math.random() * 200 + 55)) + ")";for (var i = 0; i < nFire; i++) {var particle = new Particle();particle.color = c;var vy = Math.sqrt(25 - particle.vx * particle.vx);if (Math.abs(particle.vy) > vy) {particle.vy = particle.vy > 0 ? vy : -vy;}particles.push(particle);}}function Particle() {this.w = this.h = Math.random() * 4 + 1;this.x = xPoint - this.w / 2;this.y = yPoint - this.h / 2;this.vx = (Math.random() - 0.5) * 10;this.vy = (Math.random() - 0.5) * 10;this.alpha = Math.random() * .5 + .5;this.color;}Particle.prototype = {gravity: 0.05,move: function () {this.x += this.vx;this.vy += this.gravity;this.y += this.vy;this.alpha -= 0.01;if (this.x <= -this.w || this.x >= screen.width ||this.y >= screen.height ||this.alpha <= 0) {return false;}return true;},draw: function (c) {c.save();c.beginPath();c.translate(this.x + this.w / 2, this.y + this.h / 2);c.arc(0, 0, this.w, 0, Math.PI * 2);c.fillStyle = this.color;c.globalAlpha = this.alpha;c.closePath();c.fill();c.restore();}} 

3.介绍

HTML结构:

定义了两个img标签显示两串鞭炮,canvas标签显示背景图片和烟花效果,在div标签middle中可以添加内容。

JavaScript部分:

  • 通过事件监听器,在窗口大小变化和文档加载完成时分别触发 resizeCanvasonLoad 函数。
  • 创建全局变量 canvasctxwhparticlesprobabilityxPointyPoint 用于Canvas的绘制和动画控制。
  • resizeCanvas 函数在窗口大小变化时调整Canvas的大小。
  • onLoad 函数在文档加载完成后初始化Canvas并调用 updateWorld 函数开始动画。
  • updateWorld 函数是主循环,负责更新和绘制Canvas中的粒子。
  • update 函数用于更新粒子数组。
  • paint 函数负责清除画布并绘制背景图片以及粒子效果。
  • drawBackgroundImage 函数加载并绘制背景图片。
  • createFirework 函数创建烟花,随机生成烟花的位置、颜色和数量。
  • Particle 构造函数创建粒子对象,包含粒子的大小、位置、速度、透明度和颜色。
  • Particle 原型对象包含 gravity 属性和 movedraw 方法,用于更新粒子的位置和绘制粒子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【超高效!保护隐私的新方法】针对图像到图像(l2l)生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

针对图像到图像生成模型遗忘学习&#xff1a;超高效且不需要重新训练就能从生成模型中移除特定数据 提出背景如何在不重训练模型的情况下从I2I生成模型中移除特定数据&#xff1f; 超高效的机器遗忘方法子问题1: 如何在图像到图像&#xff08;I2I&#xff09;生成模型中进行高效…

推荐系统|召回04_离散特征处理

离散特征处理 离散特征是什么 怎么处理离散特征 One-hot编码 Embedding嵌入 从one-hot到Embedding&#xff0c;已经节省了很多的存储空间&#xff0c;但当数据量大的时候&#xff0c;还是占空间&#xff0c;所以工业界仍会对Embedding进行优化 而一个物品所对应的Embedding参数…

基于JSP的网上购书系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88825694?spm1001.2014.3001.5503 Java项目-15 源码论文数据库配置文件 基于JSP的网上购书系统 摘要 在当今的社会中&#xff0c; 随着社会经济的快速发展以及计算机网络技术和通讯技术…

8种基本类型的包装类(与String的转换)

java针对8种基本数据类型&#xff0c;定义了相应的引用类型&#xff1a;包装类(封装类)&#xff0c;有了类的特点&#xff0c;就能调用类中的方法&#xff0c;java才是真正的面向对象。 基本数据类型 包装类byte Byteshort Shortint Integerlong Longfloat Floa…

国产光耦2024:发展机遇与挑战全面解析

随着科技的不断进步&#xff0c;国产光耦在2024年正面临着前所未有的机遇与挑战。本文将深入分析国产光耦行业的发展现状&#xff0c;揭示其在技术创新、市场需求等方面的机遇和挑战。 国产光耦技术创新的机遇&#xff1a; 国产光耦作为光电器件的重要组成部分&#xff0c;其技…

Python操作MySQL基础

除了使用图形化工具以外&#xff0c;我们也可以使用编程语言来执行SQL从而操作数据库。在Python中&#xff0c;使用第三方库: pymysql来完成对MySQL数据库的操作。 安装第三方库pymysql 使用命令行,进入cmd&#xff0c;输入命令pip install pymysql. 创建到MySQL的数据库连接…

CSS高级技巧

一、 精灵图 1.1 为什么需要精灵图&#xff1f; 1.2 精灵图&#xff08;sprites&#xff09;的使用 二、 字体图标 2.1 字体图标的产生 2.2 字体图标的优点 2.3 字体图标的下载 icomoom字库 http://icomoon.io 阿里iconfont字库 http://www.iconfont.cn/ 2.4 字体图标的引用…

【EAI 013】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning

论文标题&#xff1a;BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning 论文作者&#xff1a;Eric Jang, Alex Irpan, Mohi Khansari, Daniel Kappler, Frederik Ebert, Corey Lynch, Sergey Levine, Chelsea Finn 论文原文&#xff1a;https://arxiv.org…

分享76个表单按钮JS特效,总有一款适合您

分享76个表单按钮JS特效&#xff0c;总有一款适合您 76个表单按钮JS特效下载链接&#xff1a;https://pan.baidu.com/s/1CW9aoh23UIwj9zdJGNVb5w?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集…

会声会影绿幕抠图操作方法 会声会影绿幕抠图有绿色残边 绿幕抠图视频有绿边怎么处理 抖音怎么剪辑视频 视频剪辑软件推荐

科幻片里真的存在怪兽吗&#xff1f;外太空的画面是直接将演员放入太空拍摄的吗?其实这些不切实际的画面是通过绿幕拍摄实现的。你只需要在绿幕前拍一段太空漫步的视频&#xff0c;再利用会声会影的抠图功能就能实现&#xff01;如果你还不会绿幕抠图&#xff0c;我今天就手把…

《杨绛传:生活不易,保持优雅》读书摘录

目录 书简介 作者成就 书中内容摘录 良好的家世背景&#xff0c;书香门第为求学打基础 求学相关 念大学 清华研究生 自费英国留学 法国留学自学文学 战乱时期回国 当校长 当小学老师 创造话剧 支持钱锺书写《围城》 出任震旦女子文理学院的教授 接受清华大学的…

扑克牌大小(模拟)

题目 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String s sc.nextLine();String[] ss s.split("-");StringBuffer s1 new StringBuffer();StringBuffer s2 new StringBuffer(…

微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 目录 前言 通过代码实现限流 定义资源 通过代码定义资源 通过注解方式定义资源 定义限流规则 通过…

cximage在vs2013下使用方法

1.下载源码 Cximage源码官网 CxImage download | SourceForge.net 下载最新版本 702版本 Download cximage702_full.7z (CxImage) 2.编译 vs2013打开CxImageFull_vc10.sln 这个源码版本是vc10的版本&#xff0c;所以vs2013会自动更新项目 因为cximage需要在后面的项目中使…

2月7日《CS2》终于放大招,玩家激情再次被点燃

2024.2.7号&#xff0c;也就是昨天&#xff0c;V社终于放了大招&#xff0c;对CS2做了高达5个多G的大更新&#xff0c;这次更新内容还是比较多的&#xff0c;说几个比较有意思的点吧。 1、新武器箱&#xff1a;千瓦武器箱&#xff01; 全新的武器箱千瓦箱&#xff0c;能开出全…

Netty应用(一) 之 NIO概念 基本编程

目录 第一章 概念引入 1.分布式概念引入 第二章 Netty基础 - NIO 1.引言 1.1 什么是Netty&#xff1f; 1.2 为什么要学习Netty&#xff1f; 2.NIO编程 2.1 传统网络通信中开发方式及问题&#xff08;BIO&#xff09; 2.1.1 多线程版网络编程 2.1.2 线程池版的网络编程…

搭建yum仓库服务器

安装 1.安装linux 1.1安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 1.2下载 cd /opt/nginx wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.3解压 tar -xvf nginx-1.25.3.tar.gz 1.4配置 cd nginx-1.25.3 ./configure --pre…

FTP 文件传送协议

目录 1 文件传送协议 FTP 1.1 FTP 的基本工作原理 FTP 特点 主进程的工作步骤 两个连接 两个不同的端口号 NFS 采用另一种思路 1.2 简单文件传送协议 TFTP TFTP 的主要特点 TFTP 的工作&#xff08;很像停止等待协议&#xff09; 1 文件传送协议 FTP 文件传送协议 …

Redisson分布式锁 原理 + 运用 记录

Redisson 分布式锁 简单入门 pom <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version></dependency>配置类 package com.hmdp.config;import org.redisson.Redisson;…

NLP_引入注意力机制

文章目录 点积注意力创建两个张量x1和x2计算张量点积&#xff0c; 得到原始权重对原始权重进行归一化求出注意力分布的加权和 缩放点积注意力编码器-解码器注意力定义Attention类重构Decoder类重构Seq2Seq类可视化注意力权重 注意力机制中的 Q、K、V自注意力多头自注意力注意力…