HTML编写动态爱心-李峋同款爱心(粉色,蓝色爱心)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <style>
  html, body {
  height: 100%;
  padding: 0;
  margin: 0;
  background: #000;
}
canvas {
  position: absolute;
  width: 100%;
  height: 100%;
}
  </style>
 </HEAD>

 <BODY>
	 <canvas id="c"></canvas>
	 		<script>
	 			var c=document.getElementById("c");
	 			var	ctx=c.getContext("2d");
	 				c.width=window.innerWidth;
	 				c.height=window.innerHeight;
	 //				ctx.fillRect(0,0,100,100);
	 //				a,b,c,d分别代表x方向偏移,y方向偏移,宽,高
	 			var string1 = "abcdefghijklmnopqrstuvwxyz";
	 				string1.split("");
	 			var fontsize=20;
	 				columns=c.width/fontsize;
	 			var drop = [];
	 			for(var x=0;x<columns;x++)
	 			{
	 				drop[x]=0;
	 			}
	 		function drap(){
	 			ctx.fillStyle="rgba(0,0,0,0.07)";
	 			ctx.fillRect(0,0,c.width,c.height);
	 			ctx.fillStyle="#ea80b0";
	 			ctx.font=fontsize+"px arial";
	 			for(var i=0;i<drop.length;i++){
	 				var text1=string1[Math.floor(Math.random()*string1.length)];
	 				ctx.fillText(text1,i*fontsize,drop[i]*fontsize);
	 				drop[i]++;
	 				if(drop[i]*fontsize>c.height&&Math.random()>0.9){//90%的几率掉落
	 					drop[i]=0;
	 				}
	 			}
	 		}
	 		setInterval(drap,50);
	 		</script>
  <canvas id="pinkboard"></canvas>
  <script>
  /*
 * Settings
 */
var settings = {
  particles: {
    length:   500, // maximum amount of particles
    duration:   2, // particle duration in sec
    velocity: 100, // particle velocity in pixels/sec
    effect: -0.75, // play with this for a nice effect
    size:      30, // particle size in pixels
  },
};

/*
 * RequestAnimationFrame polyfill by Erik Möller
 */
(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)}}}());

/*
 * Point class
 */
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;
})();

/*
 * Particle class
 */
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;
})();

/*
 * ParticlePool class
 */
var ParticlePool = (function() {
  var particles,
      firstActive = 0,
      firstFree   = 0,
      duration    = settings.particles.duration;
  
  function ParticlePool(length) {
    // create and populate particle pool
    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);
    
    // handle circular queue
    firstFree++;
    if (firstFree   == particles.length) firstFree   = 0;
    if (firstActive == firstFree       ) firstActive++;
    if (firstActive == particles.length) firstActive = 0;
  };
  ParticlePool.prototype.update = function(deltaTime) {
    var i;
    
    // update active particles
    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);
    }
    
    // remove inactive particles
    while (particles[firstActive].age >= duration && firstActive != firstFree) {
      firstActive++;
      if (firstActive == particles.length) firstActive = 0;
    }
    
    
  };
  ParticlePool.prototype.draw = function(context, image) {
    // draw active particles
    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;
})();

/*
 * 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/sec
      time;
  
  // get point on heart with -PI <= t <= PI
  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
    );
  }
  
  // creating the particle image using a dummy canvas
  var 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 path
    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;
    }
    // create the path
    context.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 fill
    context.fillStyle = '#ea80b0';
    context.fill();
    // create the image
    var image = new Image();
    image.src = canvas.toDataURL();
    return image;
  })();
  
  // render that thing!
  function render() {
    // next animation frame
    requestAnimationFrame(render);
    
    // update time
    var newTime   = new Date().getTime() / 1000,
        deltaTime = newTime - (time || newTime);
    time = newTime;
    
    // clear canvas
    context.clearRect(0, 0, canvas.width, canvas.height);
    
    // create new particles
    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);
    }
    
    // update and draw particles
    particles.update(deltaTime);
    particles.draw(context, image);
  }
  
  // handle (re-)sizing of the canvas
  function onResize() {
    canvas.width  = canvas.clientWidth;
    canvas.height = canvas.clientHeight;
  }
  window.onresize = onResize;
  
  // delay rendering bootstrap
  setTimeout(function() {
    onResize();
    render();
  }, 10);
})(document.getElementById('pinkboard'));
  </script>
 </BODY>
</HTML>

效果图

 

 更改两处颜色变不同颜色的动态爱心

1.背景颜色

2.爱心颜色

 

 

编程Bingo
关注 关注
  • 13
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
python爱心表白代码简单,python爱心代码怎么运行
2301_79533350的博客
12-18 690
最近《点燃我温暖你》中李峋爱心代码超级火,看着特别心动,这不,光棍节快到了,给兄弟们教学一波爱心代码,赶在双十一前表白,让这个双十一不在是孤单一个人!目录前言C语言简易爱心代码原理代码执行结果C语言动态爱心代码涉及知识点SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),字体色)sheep()代码执行结果Python简易爱心代码准备工作​编辑涉及知识点np.sin(​)np.cos(​)plt.plot()plt.show()原理代码执行结果。
跳动爱心代码-李峋同款爱心代码1(完整代码)
J_Jie_的博客
11-09 5万+
代码实现电视剧 点燃我,温暖你 打火机与公主裙 李洵爱心跳动效果。跳动的爱心❤真的超级好看,程序员的浪漫,真的好炫酷啊!以下为代码内容|关注微信公众号「先取个名字吧」
《点燃我,温暖你》李珣Python爱心代码,表白利器 !_李珣的跳动的爱心代码
2401_84586380的博客
04-26 1172
最近延迟追剧,「」这部剧还挺好看的,讲述的是程序员的爱情故事。其中陈飞宇饰演的男主李峋,在剧中用程序做出的爱心跳动效果,非常炫。网上各个大佬也是纷纷给出看法,综合就是不太可能用C语言来实现的。大概率是AE这种做特效软件实现的,毕竟里面的编程语言、编辑器、程序出现太多问题啦。下面就给大家分享各个版本的跳动爱心,有兴趣的小伙伴可以去试试,送给那个人!文末领取Python全套学习资源我们来看看效果吧。涉及到了不少数学知识,需定义曲线函数,然后去调整爱心跳动周期。源代码如下,感兴趣的小伙伴可以去试试。
【canvas】李峋同款爱心代码 html canvas js 直接浏览器打开
页面仔的博客
11-15 4066
李峋同款爱心js版本,新建html文件,复制如下代码粘贴保存打开即可使用。
抖音爆火李峋同款爱心代码,简单附带教程,还有烟花代码,手残党也能学会!!
热门推荐
m0_59162248的博客
11-11 7万+
最近看到抖音爆火的一些HTML代码,有人找"极客G"更新,今天用了几个小时给大家整理出来了下面几个代码,最简单的就是第一个爱心代码,第二个烟花代码可自定义文本,具体看下面。
html+css+js爱心代码
jiangcr123的博客
11-06 1万+
最近好像爱心代码很火
最强Python表白代码来了
xiangxue888的博客
06-01 4万+
最强Python表白代码来了
HTML爱心表白代码,亲测有效,独一无二!福利来啦!
chenzhi0122的博客
06-16 7919
这次我们来分享跳动的爱心代码,网上有很多,但是个人觉得我这个比较温馨一点,背景也好看。如果觉得文章不错,还请一键三联,不定时发布各种全免费的独一无二的代码!发福利啦~小编最近搜集了好几个表白代码,感兴趣可以点进主页看看哟~
html爱心2种方法源代码
专注java二开部署
01-03 4831
一、在HTML中,我们可以使用许多方法来创建爱心。这段代码将创建一个红色的动态旋转爱心。动画效果是通过CSS的。这段代码将创建一个红色的爱心。颜色属性来改变爱心的颜色,通过更改。属性的参数来调整动画的速度和效果。
cmd的自动心形表白
11-22
CMD之前文章的文件弄错了。现在我把它发在这里。关注我,支付C币就可以下载。快来下载吧!只用支付1个C币!!!
李峋】一分钟就能学会的爱心代码
HETUW的博客
11-08 8056
如何一分钟内完成天才程序员男主李峋期中考试中完成的爱心代码------国产电视剧《点燃我,温暖你》
表白网站源码
06-13
表白网站源码
爱心源码-李峋同款爱心代码-h5形式
12-10
爱心源码-李峋同款爱心代码-h5形式
python实现李峋同款动态爱心
11-09
python代码 实现李峋同款爱心 动态爱心
李峋同款爱心代码.zip
06-12
李峋同款爱心代码.zip 代码完整下载可用。会复制就可以表白啦,还等什么赶紧行动啊。 李峋同款爱心代码.zip 代码完整下载可用。会复制就可以表白啦,还等什么赶紧行动啊。李峋同款爱心代码.zip 代码完整下载可用...
点燃我温暖你-李峋同款爱心代码
最新发布
05-17
“点燃我温暖你——李峋同款爱心代码”是一个充满创意与浪漫的项目,通过编程生成动态爱心图案,表达浓浓的爱意。该项目灵感来源于电视剧《点燃我,温暖你》中李峋的浪漫代码,旨在为用户提供一个可以输入个性化信息...
李峋同款动态爱心生成器源码可调参数
12-21
为了稍微让我的爱心和别人不同,所以我的爱心是变色的,然后做了可调参数的用户界面。也可以是抱着学习目的,爱心部分有详细到每一句的注释。默认账号密码分别为kuku kang和like kang(注意中间有空格哦)。也可以...
理工男李峋的极致浪漫:爱心代码|和你的心跳同频共振,HTML版本和Python版本
lonzgzhouzhou的博客
11-13 9650
最近随着电视剧《点燃我温暖你》的火热播出,剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈,作为一个喜欢动手实践的我来说正是一个大好机会啊,来看效果和代码部分,本文介绍了HTML和python爱心。先预祝表白成功。如果python代码运行不出来,有什么问题可以下载源代码。最后实在不能运行python可以直接下载python可执行文件.exe。
简易爱心特效代码
m0_74391978的博客
11-12 2181
爱心代码
HTML写一个李峋同款爱心代码
03-08
好的,以下是用 HTML 写一个李峋同款爱心代码的示例: ``` <!DOCTYPE html> <html> <head> <title>李峋同款爱心代码</title> <style> body { background-color: #f8f8f8; } .heart { position: relative; display: inline-block; width: 100px; height: 90px; } .heart:before, .heart:after { position: absolute; content: ""; left: 50px; top: ; width: 50px; height: 80px; background: red; border-radius: 50px 50px ; transform: rotate(-45deg); transform-origin: 100%; } .heart:after { left: ; transform: rotate(45deg); transform-origin: 100% 100%; } </style> </head> <body> <div class="heart"></div> </body> </html> ``` 希望能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • HTML编写动态爱心-李峋同款爱心(粉色,蓝色爱心) 8291
  • C#控制台输出九九乘法表 3730
  • SQL Server2019配置管理器无法连接到 WMI 提供程序 3454
  • C#中10进制与16进制的转换 1614
  • VB.Net中10进制与16进制的转换 1519

最新评论

  • SQL Server2019配置管理器无法连接到 WMI 提供程序

    EINDICE: 要用管理员权限打开cmd才行

  • SQL Server2019配置管理器无法连接到 WMI 提供程序

    thsk: 为什么会拒绝访问啊表情包表情包

  • SQL Server2019配置管理器无法连接到 WMI 提供程序

    浅孞希: 感谢 只是那个.mof文件每个电脑上的名字不一样的 主要是从那几个目录下的shared文件去找

  • HTML编写动态爱心-李峋同款爱心(粉色,蓝色爱心)

    编程Bingo: 代码第32行

  • HTML编写动态爱心-李峋同款爱心(粉色,蓝色爱心)

    qq_45893064: 加字体放在哪个位置啊

最新文章

  • VB.Net中10进制与16进制的转换
  • VB.Net中的10进制与34进制的转换(不包含字母I和O)
  • C#控制台输出水仙花数(100-1000之间的水仙花数)
2022年8篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司广东SEO按天计费和县seo哪家好淮南网站推广系统报价资阳网站推广系统丹竹头营销网站郴州关键词排名包年推广多少钱潮州百度关键词包年推广报价三亚网站优化按天收费报价广州网站推广方案南联网站排名优化公司资阳SEO按天收费多少钱泰安关键词按天收费三亚网站优化软件推荐潜江网站推广系统多少钱银川网站关键词优化多少钱南山推广网站推荐昭通网站推广工具报价资阳至尊标王公司林芝网站排名优化多少钱果洛品牌网站设计哪家好江门网站优化排名哪家好中卫网站优化按天收费报价垦利营销型网站建设报价大芬企业网站建设推荐辽源网站推广系统推荐新乡网站优化襄樊百度标王多少钱日照品牌网站设计公司百色网站建设设计报价东莞百度关键词包年推广价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化