JavaScript+html5 canvas绘制的小人效果


Posted in Javascript onJanuary 27, 2016

本文实例讲述了JavaScript+html5 canvas绘制的小人效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

JavaScript+html5 canvas绘制的小人效果

index.html代码如下:

<!DOCTYPE html>
<html>
 <head>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
  <title>canvas中的缩放</title>
  <style type="text/css">
   #canvas {
    background:black; margin-top:100px; margin-left:200px;
   }
  </style>
 </head>
 <body>
  <canvas id="canvas" width="500px" height="500px" ></canvas>
 </body>
 <script type="text/javascript" src="canvas.js"></script>
 <script type="text/javascript">
  cache = {};
  var offsetX = 50,
   offsetY = 20;
  cache.context = dyl.createContext('canvas');
  dyl.rect(dyl.createColor(), 60 + offsetX, 0 + offsetY, 185, 100);
  dyl.rect(dyl.createColor(), 100 + offsetX, 100 + offsetY, 100, 50);
  dyl.rect(dyl.createColor(), 20 + offsetX, 150 + offsetY, 260, 200);
  dyl.rect(dyl.createColor(), 80 + offsetX, 350 + offsetY, 30, 110);
  dyl.rect(dyl.createColor(), 190 + offsetX, 350 + offsetY, 30, 110);
  dyl.circle(dyl.createColor(), 115 + offsetX, 55, 20);
  dyl.circle(dyl.createColor(), 190 + offsetX, 55, 20);
 </script>
</html>

canvas.js代码如下:

(function() {
  var dyl = {cache: {}};
  dyl.setContext = function(context) {
    dyl.cache._context = context;
    return context;
  }
  dyl.getDom = function(id) {
    return document.getElementById(id);
  }
  dyl._getContext = function() {
    return dyl.cache._context;
  }
  dyl.save = function() {
    var context = dyl._getContext();
    context ? context.save() : void(0);
  }
  dyl.restore = function() {
    var context = dyl._getContext();
    context ? context.restore() : void(0);
  }
  dyl.createContext = function(canvasID) {
    var canvas = this.getDom(canvasID);
    if(!canvas) {
      return null;
    }
    return dyl.setContext(canvas.getContext("2d"));
  }
  dyl.createColor = function() {
    var color = "rgb(";
    color += Math.round(Math.random()*255);
    color += ",";
    color += Math.round(Math.random()*255);
    color += ",";
    color += Math.round(Math.random()*255);
    color += ")";
    return color;
  };
  dyl.addImg = function(img, x, y) {
    var context = dyl._getContext();
    if(!img || !context) {
      return;
    }
    if(typeof img === "string") {
      var oImg = new Image();
      oImg.src = img;
      oImg.onload = function() {
        context.drawImage(oImg, x, y);
      }
      return;
    } 
    context.drawImage(img, x, y);
  };
  dyl.rect = function(color, x, y, width, height) {
    var context = dyl._getContext();
    if(!context) {
      return;
    }
    context.fillStyle = color;
    context.fillRect(x, y, width, height);
  };
  dyl.circle = function(color, x, y, r) {
    var context = dyl._getContext();
    context.save();
    context.fillStyle = color;
    context.beginPath();
    context.arc(x, y, r, 0, 2*Math.PI);
    context.fill();
    context.stroke();
  };
  dyl.scale = function(x, y) {
    var context = dyl._getContext();
    if(!context) {
      return;
    }
    x = x ? x : 1;
    y = y ? y : 1;
    context.scale(x, y);
  };
  if(!window.dyl) {
    window.dyl = dyl;
  }
})();

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript调试工具(下载)
Jan 09 Javascript
使用jquery实现简单的ajax
Jul 08 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
Jan 03 Javascript
全面解析vue中的数据双向绑定
May 10 Javascript
React如何实现浏览器打印部分内容详析
May 19 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
Vue引入Stylus知识点总结
Jan 16 Javascript
jquery ajax分页插件的简单实现
Jan 27 #Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 #Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 #Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 #Javascript
jQuery Easyui实现左右布局
Jan 26 #Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 #Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 #Javascript
You might like
合作指挥官:孟斯克
2020/03/16 星际争霸
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
小文件php+SQLite存储方案
2010/09/04 PHP
php获取参数的几种方法总结
2014/02/18 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
实例解析Array和String方法
2016/12/14 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
Python中集合类型(set)学习小结
2015/01/28 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
Python Flask框架扩展操作示例
2019/05/03 Python
Python通过format函数格式化显示值
2020/10/17 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
绿化工程实施方案
2014/03/17 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
Python基础知识学习之类的继承
2021/05/31 Python