HTML跳动的爱心 本期小编给大家分享可以写字的HTML动态爱心代码,一起来看看叭~

目录

写在前面

HTML简介

程序设计

修改文字

推荐系列

写在后面


写在前面

本期小编给大家分享可以写字的html动态爱心代码,一起来看看叭~

HTML简介

HTML(HyperText Markup Language)是一种用于创建网页的标记语言。它是互联网的基础,几乎每一个网页都是由HTML编写的。学习HTML入门是每个想要进入网页开发领域的人的第一步。

HTML使用一系列标签来定义网页的结构和内容。每个标签都有特定的含义和作用,用于描述页面的各个元素。一个基本的HTML文档由<html>标签包围,其中包含<head>和<body>标签。

<head>标签通常包含一些元数据,例如页面的标题,作者,样式表等。这些信息对于浏览器和搜索引擎来理解和处理网页非常重要。

<body>标签包含页面的主要内容,例如文本,图像,链接等。通过使用不同的HTML标签,可以创建标题,段落,列表,表格以及其他各种元素。

例如,可以使用<h1>到<h6>标签创建不同级别的标题。<p>标签可以用于创建段落。<ul>和<li>标签可以用于创建无序列表。<table>和<tr>标签可以用于创建表格。

HTML还具有一些常用的属性,可以用于进一步定义和控制元素的行为和样式。例如,可以使用href属性为链接指定目标URL。可以使用src属性为图像指定来源URL。可以使用style属性为元素指定CSS样式。

编写HTML时应遵循一些最佳实践。首先,要保持代码结构的清晰和有序。使用缩进和换行来提高代码的可读性。其次,要注意标签的嵌套和闭合。每个开始标签都必须有一个匹配的结束标签,否则页面可能无法正常显示。最后,遵守语义化的原则,选择合适的标签来描述内容,以提高网页的可访问性和SEO优化。

编写HTML后,可以在浏览器中打开文件预览结果。在浏览器中,可以通过查看源代码来检查HTML的结构和内容。还可以使用开发者工具来调试和优化页面。

HTML入门只是网页开发的基础,后续还需要学习CSS和JavaScript等技术来实现更复杂的功能和效果。希望这个简要的介绍能帮助你开始学习HTML,并为你的网页开发之旅铺平道路。

程序设计


 
 💗
 
 body {
 margin: 0;
 overflow: hidden;
 background: #000;
 }
 canvas {
 position: absolute;
 width: 100%;
 height: 100%;
 }
 #pinkboard {
 animation: anim 1.5s ease-in-out infinite;
 -webkit-animation: anim 1.5s ease-in-out infinite;
 -o-animation: anim 1.5s ease-in-out infinite;
 -moz-animation: anim 1.5s ease-in-out infinite;
 }
 @keyframes anim {
 0% {
 transform: scale(0.8);
 }
 25% {
 transform: scale(0.7);
 }
 50% {
 transform: scale(1);
 }
 75% {
 transform: scale(0.7);
 }
 100% {
 transform: scale(0.8);
 }
 }
 @-webkit-keyframes anim {
 0% {
 -webkit-transform: scale(0.8);
 }
 25% {
 -webkit-transform: scale(0.7);
 }
 50% {
 -webkit-transform: scale(1);
 }
 75% {
 -webkit-transform: scale(0.7);
 }
 100% {
 -webkit-transform: scale(0.8);
 }
 }
 @-o-keyframes anim {
 0% {
 -o-transform: scale(0.8);
 }
 25% {
 -o-transform: scale(0.7);
 }
 50% {
 -o-transform: scale(1);
 }
 75% {
 -o-transform: scale(0.7);
 }
 100% {
 -o-transform: scale(0.8);
 }
 }
 @-moz-keyframes anim {
 0% {
 -moz-transform: scale(0.8);
 }
 25% {
 -moz-transform: scale(0.7);
 }
 50% {
 -moz-transform: scale(1);
 }
 75% {
 -moz-transform: scale(0.7);
 }
 100% {
 -moz-transform: scale(0.8);
 }
 }
 #name {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 margin-top: -20px;
 font-size: 46px;
 color: pink;
 }
 
 
 ❤萌❤
 
 
 const colors = [
 "#eec996",
 "#8fb7d3",
 "#b7d4c6",
 "#c3bedd",
 "#f1d5e4",
 "#cae1d3",
 "#f3c89d",
 "#d0b0c3",
 "#819d53",
 "#c99294",
 "#cec884",
 "#ff8e70",
 "#e0a111",
 "#fffdf6",
 "#cbd7ac",
 "#e8c6c0",
 "#dc9898",
 "#ecc8ba",
 ];
 var canvas = document.getElementById("canvas");
 var ctx = canvas.getContext("2d");
 let count = 1;
 var ww = window.innerWidth;
 var wh = window.innerHeight;
 var hearts = [];
 function init() {
 requestAnimationFrame(render);
 canvas.width = ww;
 canvas.height = wh;
 for (var i = 0; i < 100; i++) {
 hearts.push(new Heart());
 }
 }
 function Heart() {
 this.x = Math.random() * ww;
 this.y = Math.random() * wh;
 this.opacity = Math.random() * 0.5 + 0.5;
 this.vel = {
 x: (Math.random() - 0.5) * 4,
 y: (Math.random() - 0.5) * 4,
 };
 this.targetScale = Math.random() * 0.15 + 0.02;
 this.scale = this.targetScale * Math.random();
 }
 Heart.prototype.update = function (i) {
 this.x += this.vel.x;
 this.y += this.vel.y;
 this.scale += (this.targetScale - this.scale) * 0.01;
 if (this.x - this.width > ww || this.x + this.width < 0) {
 this.scale = 0;
 this.x = Math.random() * ww;
 }
 if (this.y - this.height > wh || this.y + this.height < 0) {
 this.scale = 0;
 this.y = Math.random() * wh;
 }
 this.width = 470;
 this.height = 400;
 };
 Heart.prototype.draw = function (i) {
 ctx.globalAlpha = this.opacity;
 ctx.font = `${180 * this.scale}px "微软雅黑"`;
 ctx.fillStyle = colors[i % 18];
 ctx.fillText(
 "❤萌❤",
 this.x - this.width * 0.5,
 this.y - this.height * 0.5,
 this.width,
 this.height
 );
 };
 function render() {
 ctx.clearRect(0, 0, ww, wh);
 for (var i = 0; i < 100; i++) {
 hearts[i].update(i);
 hearts[i].draw(i);
 }
 requestAnimationFrame(render);
 }
 init();
 window.addEventListener("resize", function () {
 ww = window.innerWidth;
 wh = window.innerHeight;
 });
 
 
 var settings = {
 particles: {
 length: 500,
 duration: 2,
 velocity: 100,
 effect: -0.75,
 size: 30,
 },
 };
 (function () {
 var b = 0;
 var c = ["ms", "moz", "webkit", "o"];
 for (var a = 0; a < c.length & !window.requestAnimationFrame; ++a) {
 window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"];
 window.cancelAnimationFrame =
 window[c[a] + "CancelAnimationFrame"] ||
 window[c[a] + "CancelRequestAnimationFrame"];
 }
 if (!window.requestAnimationFrame) {
 window.requestAnimationFrame = function (h, e) {
 var d = new Date().getTime();
 var f = Math.max(0, 16 - (d - b));
 var g = window.setTimeout(function () {
 h(d + f);
 }, f);
 b = d + f;
 return g;
 };
 }
 if (!window.cancelAnimationFrame) {
 window.cancelAnimationFrame = function (d) {
 clearTimeout(d);
 };
 }
 })();
 var Point = (function () {
 function Point(x, y) {
 this.x = typeof x !== "undefined" ? x : 0;
 this.y = typeof y !== "undefined" ? y : 0;
 }
 Point.prototype.clone = function () {
 return new Point(this.x, this.y);
 };
 Point.prototype.length = function (length) {
 if (typeof length == "undefined")
 return Math.sqrt(this.x * this.x + this.y * this.y);
 this.normalize();
 this.x *= length;
 this.y *= length;
 return this;
 };
 Point.prototype.normalize = function () {
 var length = this.length();
 this.x /= length;
 this.y /= length;
 return this;
 };
 return Point;
 })();
 var Particle = (function () {
 function Particle() {
 this.position = new Point();
 this.velocity = new Point();
 this.acceleration = new Point();
 this.age = 0;
 }
 Particle.prototype.initialize = function (x, y, dx, dy) {
 this.position.x = x;
 this.position.y = y;
 this.velocity.x = dx;
 this.velocity.y = dy;
 this.acceleration.x = dx * settings.particles.effect;
 this.acceleration.y = dy * settings.particles.effect;
 this.age = 0;
 };
 Particle.prototype.update = function (deltaTime) {
 this.position.x += this.velocity.x * deltaTime;
 this.position.y += this.velocity.y * deltaTime;
 this.velocity.x += this.acceleration.x * deltaTime;
 this.velocity.y += this.acceleration.y * deltaTime;
 this.age += deltaTime;
 };
 Particle.prototype.draw = function (context, image) {
 function ease(t) {
 return --t * t * t + 1;
 }
 var size = image.width * ease(this.age / settings.particles.duration);
 context.globalAlpha = 1 - this.age / settings.particles.duration;
 context.drawImage(
 image,
 this.position.x - size / 2,
 this.position.y - size / 2,
 size,
 size
 );
 };
 return Particle;
 })();
 var ParticlePool = (function () {
 var particles,
 firstActive = 0,
 firstFree = 0,
 duration = settings.particles.duration;
 function ParticlePool(length) {
 particles = new Array(length);
 for (var i = 0; i < particles.length; i++)
 particles[i] = new Particle();
 }
 ParticlePool.prototype.add = function (x, y, dx, dy) {
 particles[firstFree].initialize(x, y, dx, dy);
 firstFree++;
 if (firstFree == particles.length) firstFree = 0;
 if (firstActive == firstFree) firstActive++;
 if (firstActive == particles.length) firstActive = 0;
 };
 ParticlePool.prototype.update = function (deltaTime) {
 var i;
 if (firstActive < firstFree) {
 for (i = firstActive; i < firstFree; i++)
 particles[i].update(deltaTime);
 }
 if (firstFree < firstActive) {
 for (i = firstActive; i < particles.length; i++)
 particles[i].update(deltaTime);
 for (i = 0; i < firstFree; i++) particles[i].update(deltaTime);
 }
 while (
 particles[firstActive].age >= duration &
 firstActive != firstFree
 ) {
 firstActive++;
 if (firstActive == particles.length) firstActive = 0;
 }
 };
 ParticlePool.prototype.draw = function (context, image) {
 if (firstActive < firstFree) {
 for (i = firstActive; i < firstFree; i++)
 particles[i].draw(context, image);
 }
 if (firstFree < firstActive) {
 for (i = firstActive; i < particles.length; i++)
 particles[i].draw(context, image);
 for (i = 0; i < firstFree; i++) particles[i].draw(context, image);
 }
 };
 return ParticlePool;
 })();
 (function (canvas) {
 var context = canvas.getContext("2d"),
 particles = new ParticlePool(settings.particles.length),
 particleRate =
 settings.particles.length / settings.particles.duration, // particles/sec
 time;
 function pointOnHeart(t) {
 return new Point(
 160 * Math.pow(Math.sin(t), 3),
 130 * Math.cos(t) -
 50 * Math.cos(2 * t) -
 20 * Math.cos(3 * t) -
 10 * Math.cos(4 * t) +
 25
 );
 }
 var image = (function () {
 var canvas = document.createElement("canvas"),
 context = canvas.getContext("2d");
 canvas.width = settings.particles.size;
 canvas.height = settings.particles.size;
 function to(t) {
 var point = pointOnHeart(t);
 point.x =
 settings.particles.size / 2 +
 (point.x * settings.particles.size) / 350;
 point.y =
 settings.particles.size / 2 -
 (point.y * settings.particles.size) / 350;
 return point;
 }
 context.beginPath();
 var t = -Math.PI;
 var point = to(t);
 context.moveTo(point.x, point.y);
 while (t < Math.PI) {
 t += 0.01;
 point = to(t);
 context.lineTo(point.x, point.y);
 }
 context.closePath();
 context.fillStyle = "pink";
 context.fill();
 var image = new Image();
 image.src = canvas.toDataURL();
 return image;
 })();
 function render() {
 requestAnimationFrame(render);
 var newTime = new Date().getTime() / 1000,
 deltaTime = newTime - (time || newTime);
 time = newTime;
 context.clearRect(0, 0, canvas.width, canvas.height);
 var amount = particleRate * deltaTime;
 for (var i = 0; i < amount; i++) {
 var pos = pointOnHeart(Math.PI - 2 * Math.PI * Math.random());
 var dir = pos.clone().length(settings.particles.velocity);
 particles.add(
 canvas.width / 2 + pos.x,
 canvas.height / 2 - pos.y,
 dir.x,
 -dir.y
 );
 }
 particles.update(deltaTime);
 particles.draw(context, image);
 }
 function onResize() {
 canvas.width = canvas.clientWidth;
 canvas.height = canvas.clientHeight;
 }
 window.onresize = onResize;
 setTimeout(function () {
 onResize();
 render();
 }, 10);
 })(document.getElementById("pinkboard"));
 

修改文字

在代码的第130行可以修改爱心中间的文字哦~

在代码的第205行可以修改整个界面漂浮的文字哦~

推荐系列

序号目录直达链接
1HTML实现3D相册HTML实现3D相册-CSDN博客
2HTML元素周期表HTML元素周期表-CSDN博客
3HTML黑客帝国字母雨HTML黑客帝国字母雨_字母雨html-CSDN博客
4HTML五彩缤纷的爱心HTML五彩缤纷的爱心-CSDN博客
5HTML飘落的花瓣HTML飘落的花瓣-CSDN博客
6HTML哆啦A梦HTML哆啦A梦_html哆啦a梦代码-CSDN博客
7HTML爱情树HTML爱情树-CSDN博客
8HTML新春烟花盛宴HTML新春烟花盛宴-CSDN博客
9HTML想见你HTML想见你-CSDN博客
10HTML蓝色爱心HTML蓝色爱心-CSDN博客
11HTML跳动的爱心HTML跳动的爱心-CSDN博客
12HTML橙色爱心HTML橙色爱心-CSDN博客
13HTML大雪纷飞HTML大雪纷飞-CSDN博客
14HTML跨年烟花https://want595.blog.csdn.net/article/details/139428881
15HTML跳动的爱心https://want595.blog.csdn.net/article/details/139428947
16
17
18
19
20
21
22
23
24
25
26
27

写在后面

我是一只有趣的兔子,感谢你的喜欢!

作者:Want595原文地址:https://blog.csdn.net/m0_68111267/article/details/139428947

%s 个评论

要回复文章请先登录注册