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 相关文章推荐
window.addeventjs事件驱动函数集合addEvent等
Feb 19 Javascript
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
Javascript中的Callback方法浅析
Mar 15 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
js实现日历与定时器
Feb 22 Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
Jul 11 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
May 06 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
Zend Framework+smarty用法实例详解
2016/03/19 PHP
取选中的radio的值
2010/01/11 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
python区分不同数据类型的方法
2019/10/14 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
职工运动会邀请函
2014/01/19 职场文书
采购部经理岗位职责
2014/02/10 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
小学端午节活动总结
2015/02/11 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
bat批处理之字符串操作的实现
2022/03/16 Python
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android