情人节表白红心跳动乱入canvas绘制图和文字插件

  • 766
  • 0
  • 0
代码实现说明

1.创建画布与图片

  1. // 创建画布
  2. var ctx = canvas.getContext('2d');
  3. // 创建图片对象
  4. var heartImage = new Image();
复制代码

2.创建爱心对象

type参数为0就显示随机文字,否则只显示爱心不显示文字

  1. function Heart(type){
  2.     this.type = type;
  3.     // 初始化生成范围
  4.     this.x = Math.random() * wW;
  5.     this.y = Math.random() * wH;

  6.     this.opacity = Math.random() * .5 + .5;

  7.     // 偏移量
  8.     this.vel = {
  9.         x: (Math.random() - .5) * 5,
  10.         y: (Math.random() - .5) * 5
  11.     }

  12.     this.initialW = wW * .5;
  13.     this.initialH = wH * .5;
  14.     // 缩放比例
  15.     this.targetScale = Math.random() * .15 + .02; // 最小0.02
  16.     this.scale = Math.random() * this.targetScale;

  17.     // 文字位置
  18.     this.fx = Math.random() * wW;
  19.     this.fy = Math.random() * wH;
  20.     this.fs = Math.random() * 10;
  21.     this.text = getText();

  22.     this.fvel = {
  23.         x: (Math.random() - .5) * 5,
  24.         y: (Math.random() - .5) * 5,
  25.         f: (Math.random() - .5) * 2
  26.     }
  27. }
复制代码

3.通过爱心绘制方法在画布上绘制爱心图片的位置

  1. Heart.prototype.draw = function(){
  2.     ctx.save();
  3.     ctx.globalAlpha = this.opacity;
  4.     ctx.drawImage(heartImage, this.x, this.y, this.width, this.height);
  5.     ctx.scale(this.scale + 1, this.scale + 1);
  6.         if(!this.type){
  7.             // 设置文字属性
  8.         ctx.fillStyle = getColor();
  9.             ctx.font = 'italic ' + this.fs + 'px sans-serif';
  10.             // 填充字符串
  11.             ctx.fillText(this.text, this.fx, this.fy);
  12.         }
  13.     ctx.restore();
  14. }
复制代码
  1. // 爱心变动
  2. Heart.prototype.update = function()
复制代码

4.使用定时器实时绘制爱心

  1. function render(){
  2.     ctx.clearRect(0, 0, wW, wH);
  3.     for(var i = 0; i < hearts.length; i++){
  4.         hearts[i].draw();
  5.         hearts[i].update();
  6.     }
  7.     requestAnimationFrame(render);
  8. }
复制代码





情人节表白红心跳动乱入canvas绘制图和文字插件
  • 汐悦 刚刚下载了一个素材
  • Resurgence 刚刚下载了一个素材
  • 梦游指南 刚刚下载了一个素材
  • 今墨 刚刚下载了一个素材
  • 好想对你说 刚刚下载了一个素材
  • 都怪雨下得急 刚刚下载了一个素材
  • qq彬trn 刚刚下载了一个素材
  • 前程似锦88 刚刚下载了一个素材
  • 鼻孔鸡爱西瓜 刚刚下载了一个素材
  • 我爱冬天 刚刚下载了一个素材
  • 乱步 刚刚下载了一个素材
  • qq空城wP7 刚刚下载了一个素材
  • qq欢喜I6E 刚刚下载了一个素材
  • Dx6547 刚刚下载了一个素材
  • 风再起时 刚刚下载了一个素材
分享者:
分享者头像
小编
热门素材推荐
HTML素材网,HTML5模板,网页特效 微信公众账号二维码 淘宝店铺地址二维码
Copyright©2024  素材8  Powered by 智伙伴科技
   鲁ICP备14029286号-5 鲁公网安备37060202001967号
返回顶部返回顶部
发布主题