女神节告白代码

今天是女神节,送给所有女神们一句话:

爱自己是终生浪漫的开始,无论何时都要好好爱自己

目录

1. 请求动画帧填充

2.点类

3.粒子类

​编辑4.ParticlePool 池类

5.创建和填充

6.处理循环队列

7.更新活动粒子

8.移除非活性粒子

9.绘制有源粒子

10.整合

​编辑11.进行样式表达

12.使用虚拟画布创建粒子图像

13.用来创建路径的辅助器功能

14.创建路径

15.创建填充

15.创建图像

16.做出成果

17.创建新的粒子

18.更新和绘制粒子

19.重新处理画布大小

20. 延迟渲染引导

21.全部代码


图片[1] - 女神节告白代码 - MaxSSL

今天我们来写表白爱心代码

图片[2] - 女神节告白代码 - MaxSSL

首先HTML里body只要写两行代码就可以了,后面都是js代码了

我们的样式css代码如下:

图片[3] - 女神节告白代码 - MaxSSL

首先我们先定义一个Settings

图片[4] - 女神节告白代码 - MaxSSL

1. 请求动画帧填充

RequestAnimationFrame polyfill by Erik M” />

2.点类

Point class

图片[5] - 女神节告白代码 - MaxSSL

3.粒子类

Particle class

图片[6] - 女神节告白代码 - MaxSSL4.ParticlePool 池类

ParticlePool class

图片[7] - 女神节告白代码 - MaxSSL

5.创建和填充

create and populate particle pool

图片[8] - 女神节告白代码 - MaxSSL

6.处理循环队列

handle circular queue

图片[9] - 女神节告白代码 - MaxSSL

7.更新活动粒子

update active particles

图片[10] - 女神节告白代码 - MaxSSL

8.移除非活性粒子

remove inactive particles

图片[11] - 女神节告白代码 - MaxSSL

9.绘制有源粒子

draw active particles

图片[12] - 女神节告白代码 - MaxSSL

10.整合

Putting it all together

图片[13] - 女神节告白代码 - MaxSSL11.进行样式表达

get point on heart with -PI <= t <= PI

图片[14] - 女神节告白代码 - MaxSSL

12.使用虚拟画布创建粒子图像

creating the particle image using a dummy canvas

图片[15] - 女神节告白代码 - MaxSSL

13.用来创建路径的辅助器功能

helper function to create the path

图片[16] - 女神节告白代码 - MaxSSL

14.创建路径

create the path

图片[17] - 女神节告白代码 - MaxSSL

15.创建填充

图片[18] - 女神节告白代码 - MaxSSL

15.创建图像

图片[19] - 女神节告白代码 - MaxSSL

16.做出成果

图片[20] - 女神节告白代码 - MaxSSL

17.创建新的粒子

图片[21] - 女神节告白代码 - MaxSSL

18.更新和绘制粒子

update and draw particles

图片[22] - 女神节告白代码 - MaxSSL

19.重新处理画布大小

图片[23] - 女神节告白代码 - MaxSSL

20. 延迟渲染引导

delay rendering bootstrap

图片[24] - 女神节告白代码 - MaxSSL

21.全部代码

* {padding: 0;margin: 0;}html,body {height: 100%;padding: 0;margin: 0;background: rgb(253, 253, 253);}canvas {position: absolute;width: 100%;height: 100%;}.aa {position: fixed;left: 50%;bottom: 10px;color: #ccc;}h1{text-align: center;padding-top: 100px;}

女神节快乐!

/* * Settings */var settings = {particles: {length: 500, // maximum amount of particlesduration: 2, // particle duration in secvelocity: 100, // particle velocity in pixels/seceffect: -0.75, // play with this for a nice effectsize: 30 // particle size in pixels}};/* * RequestAnimationFrame polyfill by Erik M" />= duration &&firstActive != firstFree) {firstActive++;if (firstActive == particles.length) firstActive = 0;}};ParticlePool.prototype.draw = function (context, image) {// draw active particlesif (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;})();/* * Putting it all together */(function (canvas) {var context = canvas.getContext("2d"),particles = new ParticlePool(settings.particles.length),particleRate =settings.particles.length / settings.particles.duration, // particles/sectime;// get point on heart with -PI <= t <= PIfunction 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);}// creating the particle image using a dummy canvasvar image = (function () {var canvas = document.createElement("canvas"),context = canvas.getContext("2d");canvas.width = settings.particles.size;canvas.height = settings.particles.size;// helper function to create the pathfunction 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;}// create the pathcontext.beginPath();var t = -Math.PI;var point = to(t);context.moveTo(point.x, point.y);while (t < Math.PI) {t += 0.01; // baby steps!point = to(t);context.lineTo(point.x, point.y);}context.closePath();// create the fillcontext.fillStyle = "red";context.fill();// create the imagevar image = new Image();image.src = canvas.toDataURL();return image;})();// render that thing!function render() {// next animation framerequestAnimationFrame(render);// update timevar newTime = new Date().getTime() / 1000,deltaTime = newTime - (time || newTime);time = newTime;// clear canvascontext.clearRect(0, 0, canvas.width, canvas.height);// create new particlesvar 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);}// update and draw particlesparticles.update(deltaTime);particles.draw(context, image);}// handle (re-)sizing of the canvasfunction onResize() {canvas.width = canvas.clientWidth;canvas.height = canvas.clientHeight;}window.onresize = onResize;// delay rendering bootstrapsetTimeout(function () {onResize();render();}, 10);})(document.getElementById("pinkboard"));

好了,这就是全部爱心代码了

今天是三八女神节,无论是小妹妹还是大姐姐,我都想对我的同性说:生活处处充满美好,无论身处什么逆境,都应该往前看,一切都会过去的,我们女性大部分都会因为感情,学业,家庭的等困扰所影响,我一直觉得感情应该以佛系的态度看待,学业,努力向上我觉得就很幸福,自己想要的自己去努力争取,不去依附她人,做自己的女王,你就是这个世界最闪闪发光的人!!!

今天的分享就到此结束了

创作不易点赞评论互关三连

图片[25] - 女神节告白代码 - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享