位置: IT常识 - 正文

【HTML实战】把爱心代码放在自己的网站上是一种什么体验?(怎么把html做成app)

编辑:rootadmin
【HTML实战】把爱心代码放在自己的网站上是一种什么体验?

推荐整理分享【HTML实战】把爱心代码放在自己的网站上是一种什么体验?(怎么把html做成app),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何将html中的数据转换到excel中,怎么把html转换成jpg,怎么把html变成jsp,怎么把html做成app,怎么把html变成jsp,html如何,怎么把html变成图片,html如何,内容如对您有帮助,希望把文章链接给更多的朋友!

👨‍💻个人主页:@花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创

收录于专栏 【HTML】

【HTML实战】把爱心代码放在自己的网站上是一种什么体验?(怎么把html做成app)

最近随着电视剧《点燃我温暖你》的火热播出,剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈,作为一个喜欢动手实践的我来说正是一个大好机会啊,于是我就把代码搬到了自己的网站上,源码我也放在了我的GitHub上,大家有需自取哦~💗

仓库地址:『https://github.com/huawuque404/Love-code』 也欢迎大家star Issues fork 并pr哦,一起来开发更多好看的样式或者动态效果吧!

网站效果:『https://www.huawuque404.cn/love.html』

后面有时间的话我会将各式各样的爱心代码更新在这个仓库里,如果大家感兴趣的话就来和我一起创造爱心吧~😍

今天周末了,大家都要好好吃饭,好好睡觉哦!🎉

拜拜!

GitHub进不去的话,源代码这也有一份,有点长:

<!DOCTYPE html><html><head> <title> 爱心代码 </title> <meta charset="utf-8"> <meta name="Author" content="花无缺"> <meta name="Keywords" content="爱心代码"> <meta name="Description" content="爱心代码"> <link rel="shortcut icon" href="../picture/爱心.png" type="image/x-icon"> <style> html, body { height: 100%; padding: 0; margin: 0; background: #000; } canvas { position: absolute; width: 100%; height: 100%; } </style></head><body> <canvas id="pinkboard"></canvas> <script> 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, 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 = '#ea80b0'; 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')); </script></body></html>

🌸欢迎关注我的博客:来和我一起成长吧 🥇往期精彩好文: 📢【HTML基础知识详解】 📢【CSS基础认知】 你们的点赞👍 收藏⭐ 留言📝 关注✅ 是我持续创作,输出优质内容的最大动力! 谢谢!

本文链接地址:https://www.jiuchutong.com/zhishi/300128.html 转载请保留说明!

上一篇:强大到让人无法想象的ChatGPT-5即将发布,上千名人士却紧急叫停(强大到无需疼无需宠,却幸运到有人宠有人疼什么意思)

下一篇:微信小程序 | 小程序的事件处理(微信小程序小窗口)

  • 苹果怎么清后台(苹果怎么清除最近运行)

    苹果怎么清后台(苹果怎么清除最近运行)

  • 华为90hz刷新率手机有哪些(华为90hz刷新率下载)

    华为90hz刷新率手机有哪些(华为90hz刷新率下载)

  • 微信怎么把视频声音取消了(微信怎么把视频和图片一起发朋友圈)

    微信怎么把视频声音取消了(微信怎么把视频和图片一起发朋友圈)

  • 抖音怎么更改视频背景(抖音怎么更改视频封面图片)

    抖音怎么更改视频背景(抖音怎么更改视频封面图片)

  • 天猫积分能充话费吗(天猫积分可以换钱吗)

    天猫积分能充话费吗(天猫积分可以换钱吗)

  • 苹果散热不好怎么办(iphone散热不好影响电池寿命吗)

    苹果散热不好怎么办(iphone散热不好影响电池寿命吗)

  • 钉钉同一账号能用几台手机登录(钉钉同一账号能用几台电脑登陆)

    钉钉同一账号能用几台手机登录(钉钉同一账号能用几台电脑登陆)

  • 换主板需要注意什么(换主板需要注意些什么)

    换主板需要注意什么(换主板需要注意些什么)

  • 笔记本mx250显卡什么级别(笔记本mx250显卡值多少钱)

    笔记本mx250显卡什么级别(笔记本mx250显卡值多少钱)

  • 笔记本电脑直接按电源键关机有影响吗(笔记本电脑直接连接wifi可以用吗)

    笔记本电脑直接按电源键关机有影响吗(笔记本电脑直接连接wifi可以用吗)

  • 快手作品分享有提示吗(快手作品分享有什么好处)

    快手作品分享有提示吗(快手作品分享有什么好处)

  • 怎样快速解除盲人模式(如何消除盲人设置)

    怎样快速解除盲人模式(如何消除盲人设置)

  • 数字怎么上标(参考文献数字怎么上标)

    数字怎么上标(参考文献数字怎么上标)

  • 手机开定位费电吗(手机开定位是不是很费电)

    手机开定位费电吗(手机开定位是不是很费电)

  • 怎样增加淘宝的心级(怎样增加淘宝的流量)

    怎样增加淘宝的心级(怎样增加淘宝的流量)

  • iphone4跟4s外观区别(iphone4和4s外观)

    iphone4跟4s外观区别(iphone4和4s外观)

  • 快手查找附近的人准吗(快手怎么查找附近的人快手号)

    快手查找附近的人准吗(快手怎么查找附近的人快手号)

  • 手机qq怎么看q币余额(手机上怎么看q币)

    手机qq怎么看q币余额(手机上怎么看q币)

  • 云收藏怎么用(云收藏文件怎么保存到相册)

    云收藏怎么用(云收藏文件怎么保存到相册)

  • 小米cc9pro出厂带贴膜吗(小米cc9pro有什么新功能)

    小米cc9pro出厂带贴膜吗(小米cc9pro有什么新功能)

  • 微信正在输入代表什么(微信有人显示正在输入)

    微信正在输入代表什么(微信有人显示正在输入)

  • wps怎么插超链接(wps如何添加超链接)

    wps怎么插超链接(wps如何添加超链接)

  • 苹果手机怎么上purnhub(苹果手机怎么上youtube)

    苹果手机怎么上purnhub(苹果手机怎么上youtube)

  • 微信里的猫眼怎么退出登录(微信里的猫眼怎么退票)

    微信里的猫眼怎么退出登录(微信里的猫眼怎么退票)

  • 苹果xr下载东西侧边按怎么取消

    苹果xr下载东西侧边按怎么取消

  • 麒麟980和麒麟810的区别(麒麟980和麒麟810对比)

    麒麟980和麒麟810的区别(麒麟980和麒麟810对比)

  • oppo如何黑屏显示时间(oppo手机怎么在黑屏幕上显示时间)

    oppo如何黑屏显示时间(oppo手机怎么在黑屏幕上显示时间)

  • 小规模纳税人起征点和免征额
  • 非金银首饰以旧换新增值税
  • 费用票如何做账务处理
  • 网线的税收编码是多少
  • 其他综合收益为什么是所有者权益
  • 库存商品的进销存怎么做账
  • 工业企业生产成本包括哪些
  • 一次性奖金收入如何交个税
  • 应付账款是负数怎么回事
  • 购入工程物资计入
  • 计划成本材料采购明细账一般采用的格式是什么
  • 商品买一送一是打五折吗
  • 报销发票财务一旦作废报销人可以收回吗?
  • 企业所得税季报怎么申报
  • 事业单位会计科目表及解释
  • 软件开发过程中采用多种图形化工具
  • 新开办公司前三个月没交社保,后面正常缴纳
  • 入账价值和账面余额一样吗
  • 无票收入科目
  • 所得税到底按会计分录吗
  • php存储过程是什么
  • mom.exe是什么
  • 户外广告位怎么收费
  • 华盛顿州帕卢斯心雕塑
  • 年终奖并入综合所得
  • 用友财务软件使用视频教程
  • python读书笔记
  • 2023版最新最全React面试题
  • python快速检索
  • 上月增值税报表还可以更正吗
  • 发票收件人信息
  • 小规模企业所得税优惠政策最新2022
  • 人力资源公司代办
  • javascript前端开发案例教程源码
  • 政府会计准则的双报告
  • 企业三季报
  • 文化传媒有限公司英文
  • 勾稽关系怎么算
  • 车到4s店后还需办什么手续
  • sql效率优化
  • mysql服务器怎么启动
  • 哪些公司可以开电费发票
  • win2008r2服务器文件无法进入软件
  • 预收一年房租的会计科目
  • 企业进项税率是多少
  • 无偿调出固定资产应计入什么
  • 纳税实务的涉税业务分几类
  • 为员工保险取得的增值税抵扣
  • 银行承兑汇票贴现利息怎么算
  • 预付账款借方如何结转
  • 建厂期间购买材料怎么办
  • 收付实现制与权责发生制的例题
  • 税票是什么意思
  • 非本公司员工能否享受本公司的福利
  • 新发票和旧发票的区别
  • 伤病假条
  • 简单介绍春节的风俗
  • mysql 隐式游标
  • mysql查看查询耗时
  • 线上MYSQL同步报错故障处理方法总结(必看篇)
  • centos如何安装vim
  • 永恒之塔客户端是32位
  • win7开始菜单在哪个文件夹
  • cnqmax.exe进程的详细注解 cnqmax进程是病毒吗 安全吗
  • mac打开下载文件夹
  • windows升级10
  • cocos2dx键盘控制移动
  • cocos安装
  • 你将会收藏
  • 使用jquery实现的项目
  • js中date
  • linearlayout addview
  • unity旋转角度范围限制
  • Android文本框怎么变成椭圆形?
  • jquery中获取元素的三种方法
  • python的了解
  • 宁波鄞州区行政区划代码
  • 广东省地方税务局历任局长
  • 税务局 环保税
  • 银行最新税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设