Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产精品久久久久久久久久久威,19国产精品麻豆免费观看,91在线精品亚洲一区二区

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          程序員浪漫起來沒文科生什么事:HTML制作表白愛心-無需編程基礎(chǔ)

          說程序員是大大的直男,但是一旦程序員浪漫起來,他們會用他們狂拽酷炫吊的技能展現(xiàn)自己的羅曼蒂克實力,那時候就真的沒文科男什么事啦!下面我就跟大家分享如何用簡單的html制作一個網(wǎng)頁版的愛心表白,不管你是不是程序員都能用,手機就可展示。

          先來看下效果:

          后面會提供給大家源代碼,在這里先交大家怎么去根據(jù)自己的實際情況去改這個文件。

          復(fù)制源代碼

          首先大家將我后面的源代碼復(fù)制下來并且粘貼進一個txt文件就可以。

          jquery.js下載

          不要看到下載就害怕,這個大家只要搜索jquery就能下載了,下載完是一個jquery.js文件,將文件改名為jquery.txt,雙擊打開將內(nèi)容復(fù)制到下圖所示位置。(如果有人不會下,可以私信我索要)

          更改表白信息

          大家根據(jù)自己的實際請款更改頁面的一些信息,比如姓名,日期、或者是表白內(nèi)容都可以

          源碼

          最后奉上源碼,這里是沒有jquery.js的,已經(jīng)預(yù)留空,需要大家復(fù)制粘貼進來就行了,最后將txt文件的后綴改為.html就可以了,不管是電腦還是手機都能用哦。

          lt;!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>

          </style>

          <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>

          注頭條號,專注做前端

          誰說程序員不浪漫,其實有些程序還是很浪漫的好嘛,懂得學(xué)以致用,下面是一個前端開發(fā)利用所學(xué)html5制作的html5愛心+表白 ,附源碼

          如果你是一個單身程序員,那么趕緊的拿下這個資源吧

          源碼下載

          http://zjdx1.sc.chinaz.com/Files/DownLoad/webjs1/201401/jiaoben1892.rar

          ////


          主站蜘蛛池模板: 中文字幕一区二区三区乱码| 国产精品日韩欧美一区二区三区| 亚洲欧美成人一区二区三区 | 精品女同一区二区三区在线| 国产主播一区二区| 免费一区二区视频| 国产视频一区在线播放| 中文字幕精品一区二区2021年| 人妻少妇精品一区二区三区| 国产精品亚洲产品一区二区三区| 亚无码乱人伦一区二区| 91久久精品国产免费一区| 色窝窝无码一区二区三区 | 久久精品国产免费一区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 性色A码一区二区三区天美传媒| 精品一区二区三区免费视频| 精品视频在线观看你懂的一区| 亚洲人成网站18禁止一区| 日本中文字幕在线视频一区| 国产在线一区观看| 国产一区韩国女主播| 视频一区在线免费观看| 精品一区二区三区无码视频| 日本中文字幕在线视频一区| 精品乱子伦一区二区三区高清免费播放 | 国产一区高清视频| 日韩视频在线观看一区二区| 日本一区二区三区不卡视频中文字幕 | 亚洲AV成人一区二区三区在线看| 精品一区二区三区在线观看视频 | 女人和拘做受全程看视频日本综合a一区二区视频| 亚洲国产精品一区| 亚洲av无码一区二区三区在线播放| 乱码人妻一区二区三区| 日韩伦理一区二区| 一区二区三区国产| 人妻少妇精品视频三区二区一区| 日韩一区二区三区不卡视频| 日韩精品无码视频一区二区蜜桃 | 精品国产免费观看一区|