给男朋友准备的520礼物,他觉得太尴尬了,于是我特地把这个项目开源,让大家一起感受一下男票的尴尬,哈哈哈哈哈哈我好恶趣味。

话不多说上代码

html部分:

<!doctype html>
<html>
<head><meta charset="utf-8"><title>love++</title><style>html, body {width: 500px;height:300px;left:50px;top:30px;margin: 100px 289px;background: #f6d8e2;}pp1{position: absolute;top: 20px;left: 20px;}canvas {position: absolute;width: 1000px;height: 500px;left:135px;top:50px;}</style><link href="css/default.css" type="text/css" rel="stylesheet"><script type="text/javascript" src="d.js"></script><script language="javascript" type="text/javascript">// 18秒以后再跳转setTimeout("javascript:location.href='./index.html'", 15000);</script></head><div id="myContent"></div>
<div id="contentToWrite" class="comments" style="display:none;">此为打字动画,可以编辑文本</div>
<script type="text/javascript"> writeContent(true); </script>
</body>
<body><canvas id="pinkboard"></canvas><script>/** 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?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 poolparticles = 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 queuefirstFree++;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 particlesif (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 particleswhile (particles[firstActive].age >= 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(180 * Math.pow(Math.sin(t), 3),160 * 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 = '#fa759f';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();}, 50);})(document.getElementById('pinkboard'));</script></body></html>

 二、图片旋转木马特效

html部分:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><title>love++</title><link rel="stylesheet" type="text/css" href="css/normalize.css" /><link rel="stylesheet" type="text/css" href="css/demo.css"><style type="text/css">body{font-size:1em;color: #ffffff;<!--background-color: #000000;-->}#Ellipse{position:relative;visibility:visible;z-index:1;width:700px;height:80px;border:none;margin-top: 250px;margin-bottom: 100px;}.RotatingIcon{border:none;width:80px;}</style><!--[if IE]><script src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script><![endif]--><div style="text-align:center;"><p><a href="../index.html" title="love++" target="_blank">♥++</a></p></div>
</head><body onLoad="InitScripts()" style="background-image: url(./img/p8.png);"><div id="Ellipse"><img class="RotatingIcon"  src="img/love++.png"><img class="RotatingIcon"  src="img/++love.png"><img class="RotatingIcon"  src="img/love++.png"><img class="RotatingIcon"  src="img/++love.png"><img class="RotatingIcon"  src="img/love++.png"><img class="RotatingIcon"  src="img/++love.png"></div><script src="js/ImageRotator-min.js"></script><script type="text/javascript">var imageRotater = null;function InitScripts(){imageRotater = ImageRotatorJS('Ellipse','RotatingIcon',5,110,30, 0, 90, 40, null);}</script></body>
</html>

三、雪花特效

html部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>love you forever</title><style type="text/css">
body {background-color: #f6d8e2;margin:0px;overflow:hidden;
}
a {color: #ffffff;
}
</style></head><body onLoad="init()"style="background-image: url(../picture/p19.jpg);">
<marquee    direction="left"  loop="-1" scrollamount="10" scrolldelay="100"><p><font color="#ffffff" size="5">此为滚动字幕</font></p>
</marquee>
<script type="text/javascript" src="js/ThreeCanvas.js"></script>
<script type="text/javascript" src="js/Snow.js"></script>
<script type="text/javascript">var SCREEN_WIDTH = window.innerWidth;
var SCREEN_HEIGHT = window.innerHeight;var container;var particle;var camera;
var scene;
var renderer;var mouseX = 0;
var mouseY = 0;var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;var particles = [];
var particleImage = new Image();//THREE.ImageUtils.loadTexture( "img/ParticleSmoke.png" );
particleImage.src = 'images/ParticleSmoke.png'; function init() {container = document.createElement('div');document.body.appendChild(container);camera = new THREE.PerspectiveCamera( 75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 );camera.position.z = 1000;scene = new THREE.Scene();scene.add(camera);renderer = new THREE.CanvasRenderer();renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);var material = new THREE.ParticleBasicMaterial( { map: new THREE.Texture(particleImage) } );for (var i = 0; i < 500; i++) {particle = new Particle3D( material);particle.position.x = Math.random() * 2000 - 1000;particle.position.y = Math.random() * 2000 - 1000;particle.position.z = Math.random() * 2000 - 1000;particle.scale.x = particle.scale.y =  1;scene.add( particle );particles.push(particle); }container.appendChild( renderer.domElement );document.addEventListener( 'mousemove', onDocumentMouseMove, false );document.addEventListener( 'touchstart', onDocumentTouchStart, false );document.addEventListener( 'touchmove', onDocumentTouchMove, false );setInterval( loop, 1000 / 60 );}function onDocumentMouseMove( event ) {mouseX = event.clientX - windowHalfX;mouseY = event.clientY - windowHalfY;
}function onDocumentTouchStart( event ) {if ( event.touches.length == 1 ) {event.preventDefault();mouseX = event.touches[ 0 ].pageX - windowHalfX;mouseY = event.touches[ 0 ].pageY - windowHalfY;}
}function onDocumentTouchMove( event ) {if ( event.touches.length == 1 ) {event.preventDefault();mouseX = event.touches[ 0 ].pageX - windowHalfX;mouseY = event.touches[ 0 ].pageY - windowHalfY;}
}//function loop() {for(var i = 0; i<particles.length; i++){var particle = particles[i];particle.updatePhysics();with(particle.position){if(y<-1000) y+=2000;if(x>1000) x-=2000;else if(x<-1000) x+=2000;if(z>1000) z-=2000;else if(z<-1000) z+=2000;}}camera.position.x += ( mouseX - camera.position.x ) * 0.05;camera.position.y += ( - mouseY - camera.position.y ) * 0.05;camera.lookAt(scene.position); renderer.render( scene, camera );}
</script>
</body></html>

这个部分可以需要在images文件夹里插入雪花图片,图片如下自取(纯白图片):

到此我们的网站便搭建完成了,最后博主要说的是,看十遍不如做一遍,趁现在京东云还在活动阶段,我们只需 不到一瓶矿泉水的价格,即可在抢购到在京东云上 2核4G 的云主机(使用期高达一个月)

注意: 活动时间有限,先到先得,赶快抢购吧。 >>> 传送门 <<<戳这里)

除此之外还推荐大家在网页里插入audio标签音频作为bgm,这样的表白代码就更有氛围感了。

ps:部分代码非原创,侵删。

html情侣表白代码,自动打字、动态爱心、图片旋转木马特效相关推荐

  1. html+css+js表白代码,实现打字动画、动态爱心、图片旋转木马特效、下雪特效

    给男朋友准备的520礼物,他觉得太尴尬了,于是我特地把这个项目开源,让大家一起感受一下男票的尴尬,哈哈哈哈哈哈我好恶趣味. 话不多说上代码: 一.动态爱心+打字动画 html部分: <!doct ...

  2. 抖音计算机表白文档,抖音上的表白代码是什么 抖音表白代码自动生成方法

    以前大家总说工科生不懂浪漫,但最近DJ抖音网很流行用代码来表白,将代码编写好,然后将文档发给要表白的对象,然后就可以等着对方进入你的表白套路了.其实这是弹窗表白的代码不是很复杂,一般人按照步骤来都可以 ...

  3. php 以自动打字程序,【图片】vbs程序 表白小姐姐 自动打字!_vbs吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Set Seven = WScript.CreateObject("WScript.Shell") strDesktop = Seve ...

  4. 小伙子用C++代码打造全屏幻灯片图片显示特效!成功拿到offer

    今天我们想分享一个平面的c++电子杂志布局与"翻页"动画特效.导航时,内容被覆盖,然后显示下一页.根据页面之间的距离(在从菜单中选择页面时),我们将显示多个元素来覆盖内容,从而创建 ...

  5. c语言满屏爱心,微信聊天可以发满屏动态爱心了 个性又浪漫!

    前不久,分享过一个<微信深色模式隐藏表白技巧>,受到不少小伙伴欢迎.这种隐藏表白模式的神奇之处在于,只有在微信深色模式下,才能显示出隐藏字,浅色模式是隐藏的,另外支持双含义显示,个性又有创 ...

  6. C++动态爱心 520 七夕情人节整活

    1,代码包括 1.动态爱心 2.控制台字体颜色 大小调节 代码如下 程序员的浪漫. #include<iostream> #include<cmath> #include< ...

  7. python表白代码,照片隐藏表白话语

    文章目录 前言 一.具体过程 1.代码思路 2.python完整代码 3.代码补充 二.结果 补充 前言 最近天气好冷,感觉整个人都是冰冰的!程序员如何用python表白自己的女神呢?我想用最近学的图 ...

  8. php立方体相册源码,纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空)...

    本篇文章所说的内容是纯CSS实现3D的代码(正方体.动态立体图片册.平面的星空),代码都非常详细,有需要的朋友可以看一下. 一.正方体 我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面 ...

  9. 三款html版女朋友表白告白代码,动态爱心表白代码,总有一款适合你,可定制表白内容

    三款html版女朋友表白告白代码,动态爱心表白代码,总有一款适合你,可定制表白内容 完整代码下载地址:三款html版女朋友表白告白代码,动态爱心表白代码 index.html <!DOCTYPE ...

最新文章

  1. LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句
  2. 10个人围成一圈循环报数,输出最后出圈的人
  3. 从fig文件中读取数据
  4. github 公钥 私钥_GitGithub入门教程笔记(2)
  5. Python(6):工程组织结构
  6. JeeSite 4.0 内置功能模块规划
  7. C++中如何读取一个数的位数_C语言编写程序求水仙花数
  8. 怀念一下过去的人和事
  9. Python《使用selenium解决动态加载的问题》
  10. 中国计算机学会推荐的国际学术刊物
  11. 直播丨探究Oracle多租户架构
  12. 相近字符串的匹配--编辑距离问题
  13. 软件工程网络15个人阅读作业2(201521123111 陈伟泽)
  14. 全方面解析软件测试行业发展现状及前景
  15. 简单破解闪电视频转换王
  16. Could not import the lzma module
  17. 虚拟服务器怎么选操作系统,虚拟主机怎样选择合适的操作系统
  18. 实习期间的一些思考整理(4)2018.4.14~4.16
  19. mysql emoji 问号_mysql数据库怎么存入emoji表情,更改utf8mb4后为什么出现全是问号...
  20. 《图像处理实例》 之 疏密程度统计

热门文章

  1. 习惯改变人生-读习惯的力量有感
  2. 2023产生的那些让我印象深刻的五个bug,无法释怀!
  3. 动画说明 李明杰新浪博客
  4. Redis实现分布式锁:加锁、解锁、续租和一致
  5. 【三】 VVC理论知识之帧间预测(1)
  6. 骨传导耳机哪个品牌好些、现在最好的骨传导耳机品牌推荐
  7. 软工个人项目作业——论文查重系统
  8. 为什么不建议使用ON DUPLICATE KEY UPDATE
  9. Linux笔记(六)——权限的基本介绍,修改权限,修改文件/目录的所有者及所在组
  10. node与mySQL基本知识