效果图:

源代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>love</title>
<link href="favicon.ico" rel="shortcut icon" />
<style>
body{overflow: hidden;margin: 0;
}
h1{position: fixed;top: 50%;left: 0;width: 100%;text-align: center;transform:translateY(-50%);font-family: 'Love Ya Like A Sister', cursive;font-size: 40px;color: #c70012;padding: 0 20px;
}
h1 span{font-size:20px;
}
</style></head>
<body>
<h1 id="h1"></h1>
<canvas></canvas> <!--canvas 画布--><script>
var canvas = document.querySelector("canvas"),ctx = canvas.getContext("2d");var ww,wh;function onResize(){ww = canvas.width = window.innerWidth;wh = canvas.height = window.innerHeight;
}ctx.strokeStyle = "red";
ctx.shadowBlur = 25;
ctx.shadowColor = "hsla(0, 100%, 60%,0.5)";var precision = 100;
var hearts = [];
var mouseMoved = false;
function onMove(e){mouseMoved = true;if(e.type === "touchmove"){hearts.push(new Heart(e.touches[0].clientX, e.touches[0].clientY));hearts.push(new Heart(e.touches[0].clientX, e.touches[0].clientY));}else{hearts.push(new Heart(e.clientX, e.clientY));hearts.push(new Heart(e.clientX, e.clientY));}
}var Heart = function(x,y){this.x = x || Math.random()*ww;this.y = y || Math.random()*wh;this.size = Math.random()*2 + 1;this.shadowBlur = Math.random() * 10;this.speedX = (Math.random()+0.2-0.6) * 8;this.speedY = (Math.random()+0.2-0.6) * 8;this.speedSize = Math.random()*0.05 + 0.01;this.opacity = 1;this.vertices = [];for (var i = 0; i < precision; i++) {var step = (i / precision - 0.5) * (Math.PI * 2);var vector = {x : (15 * Math.pow(Math.sin(step), 3)),y : -(13 * Math.cos(step) - 5 * Math.cos(2 * step) - 2 * Math.cos(3 * step) - Math.cos(4 * step)) }this.vertices.push(vector);}
}Heart.prototype.draw = function(){this.size -= this.speedSize;this.x += this.speedX;this.y += this.speedY;ctx.save();ctx.translate(-1000,this.y);ctx.scale(this.size, this.size);ctx.beginPath();for (var i = 0; i < precision; i++) {var vector = this.vertices[i];ctx.lineTo(vector.x, vector.y);}ctx.globalAlpha = this.size;ctx.shadowBlur = Math.round((3 - this.size) * 10);ctx.shadowColor = "hsla(0, 100%, 60%,0.5)";ctx.shadowOffsetX = this.x + 1000;ctx.globalCompositeOperation = "screen"ctx.closePath();ctx.fill()ctx.restore();
};function render(a){requestAnimationFrame(render);hearts.push(new Heart())ctx.clearRect(0,0,ww,wh);for (var i = 0; i < hearts.length; i++) {hearts[i].draw();if(hearts[i].size <= 0){hearts.splice(i,1);i--;}}
}onResize();
window.addEventListener("mousemove", onMove);
window.addEventListener("touchmove", onMove);
window.addEventListener("resize", onResize);
requestAnimationFrame(render);window.onload=function starttime(){time(h1,'2017,7,4');     // 在一起的时间ptimer = setTimeout(starttime,1000); // 添加计时器
}function time(obj,futimg){var nowtime = new Date().getTime(); // 现在时间转换为时间戳var futruetime =  new Date(futimg).getTime(); // 未来时间转换为时间戳var msec = nowtime-futruetime; // 毫秒 未来时间-现在时间var time = (msec/1000);  // 毫秒/1000var day = parseInt(time/86400); // 天  24*60*60*1000 var hour = parseInt(time/3600)-24*day;    // 小时 60*60 总小时数-过去的小时数=现在的小时数 var minute = parseInt(time%3600/60); // 分 -(day*24) 以60秒为一整份 取余 剩下秒数 秒数/60 就是分钟数var second = parseInt(time%60);  // 以60秒为一整份 取余 剩下秒数
//              console.log(hour+":"+minute+":"+second)
//              alert(hour)obj.innerHTML="大懒猪<br>咱俩在一起的时间已经:<br>"+day+"天"+hour+"小时"+minute+"分"+second+"秒"+"了<br><span>一时间不知道从哪说起,真爱来了,我们要好好把握。<br>不管面临多大的压力,不管前面的路如何崎岖.<br>不管经历过什么,我仍坚信最浪漫的事就是和你一起慢慢变老.<br>相信中间的计时器,将永远继续下去,直至数据溢出.</span>"return true;}
</script></body>
</html>

一个js写的爱心表白神器相关推荐

  1. HTML5一个浪漫的程序猿:3D旋转爱心表白神器思路源码视频

    源码/视频评论后加前端学习群470593776 javascript课题:3D旋转爱心表白神器 知识点:CSS3变换.3D场景运用,3D立方体制作技巧,爱心制作技巧, 原生js DOM操作,逻辑思维锻 ...

  2. HTML5七夕情人节表白网页(抖音-流动爱心表白)HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页

    HTML5七夕情人节表白网页❤抖音-流动爱心表白❤ HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页 这是程序员表白 ...

  3. 牛逼的python代码_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  4. 一个js写的桌面倒计时(请高手帮忙改一下)

    这个Js写的倒计时是一个htm的网页可以附一张图片必须保证是同一路径下,这样就可以在桌面上显示了如下图: 那张图片就是桌面的背景可以更改,具体操作如下: 在桌面上点击右键->属性->桌面- ...

  5. python数据分析神器_牛逼啊!一个随时随地写Python代码的神器

    作者: Leoxin 公众号:菜鸟学Python 现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练 ...

  6. java打字游戏代码_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  7. 利用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 很多人 ...

  8. 在手机上写python_牛逼啊!一个随时随地写Python代码的神器

    2.运行非常方便 比如我们写一个简单的Python程序, 写一个推导列表. 这神器竟然还有代码提示功能,怕我们打字太累,直接会获取一些关键字,比如p打头的关键字,会给出一堆,这样可以省去打字的麻烦.而 ...

  9. Pythonista——一个随时随地写Python代码的神器

    现在学 Python 的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习 Python , 大家知道 Python 是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什 ...

  10. 用java写表白神器_用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 爱心树 ...

最新文章

  1. 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 )
  2. visio中UML在活动图中指示判定
  3. java线程栅栏_Java 多线程基础 - CyclicBarrier
  4. CentOS7安装详解
  5. CVPR2020|无需3D运动数据训练,最新SOTA人体姿势估计方法
  6. ajax中get请求获取数据
  7. VLC-3.0.0(Nightly版)在Linux和Windows下的编译步骤详解
  8. 如何列出所有用户的所有cron作业?
  9. MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化
  10. 网络协议篇之CWMP协议(三)—— RPC方法
  11. oracle asm查看大小,Oracle ASM查看信息
  12. SMP_WEIBO_2016 微博用户画像 可视化(未完成)
  13. html打印预览空白,win7系统下使用IE浏览器预览打印页面时显示页面空白
  14. 我们不生产知识,我们只是知识的搬运工
  15. 阿里云建站:企业网站定制/速成美站/响应式功能建站官方购买及优惠详解!
  16. 程序员进阶攻略笔记01-10
  17. 如何回答「为什么想做产品经理」【面试核心问题3】
  18. sketch里的ios控件_Sketch效率实现飞跃般的提升?先收下这些Symbol技巧
  19. 游戏中实现鼠标拖尾效果
  20. 几个不错的英语学习网站

热门文章

  1. 给定一个年月日,计算那天是星期几(数学)
  2. 有没有永久免费的云服务器?看完这篇文章你就明白了!
  3. Python+Tushare股票数据分析
  4. uni-app横屏设置
  5. 潇潇雨祭--(我很好的朋友的一篇讲述爱情的文章!)
  6. mysql 随机函数
  7. ps抠图插件Topaz ReMask 5
  8. CleanMyMac X如何维护脚本 优化mac电脑系统
  9. VBS播放WMP文件
  10. 计算机专业大学生新学期计划,大学生学习计划500字