100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > html情侣表白代码 自动打字 动态爱心 图片旋转木马特效

html情侣表白代码 自动打字 动态爱心 图片旋转木马特效

时间:2019-05-01 00:01:49

相关推荐

html情侣表白代码 自动打字 动态爱心 图片旋转木马特效

给男朋友准备的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="/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" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/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:部分代码非原创,侵删。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。