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 相关文章推荐
Opacity.js
Jan 22 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
js 代码优化点滴记录
Feb 19 Javascript
js仿百度有啊通栏展示效果实现代码
May 28 Javascript
javascript一元操作符(递增、递减)使用示例
Aug 07 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
JavaScript this使用方法图解
Feb 04 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
cmd下运行php脚本
2008/11/25 PHP
php adodb连接不同数据库
2009/03/19 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
详解vue组件基础
2018/05/04 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
详解Django中的过滤器
2015/07/16 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
Django forms组件的使用教程
2018/10/08 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
利用python绘制正态分布曲线
2021/01/04 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
《都江堰》教学反思
2014/02/07 职场文书
小学亲子活动总结
2014/07/01 职场文书
青岛海底世界导游词
2015/02/11 职场文书
使用Python解决图表与画布的间距问题
2022/04/11 Python
详解PyTorch模型保存与加载
2022/04/28 Python