<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>html5 canvas文本处理</title>
<script src="js/modernizr.js"></script>
</head> <body>
<script type="text/javascript">
window.addEventListener('load',eventWindowLoaded,false);
function eventWindowLoaded(){
canvasApp();
}
function canvasSupport(){
return Modernizr.canvas;
}
function eventWindowLoader(){
canvasApp();
}
function canvasApp(){
var message="JourneyYao";
var fillOrStroke ="fill"; if(!canvasSupport()){
return;
} var theCanvas = document.getElementById('canvas')
var context = theCanvas.getContext("2d") var formElement = document.getElementById("textbox")
formElement.addEventListener('keyup',textBoxChanged,false); var formElement = document.getElementById("fillorstroke")
formElement.addEventListener('change',fillOrStrokeChanged,false); drawScreen()
function drawScreen(){
context.fillStyle = '#ffffaa';
context.fillRect(0,0,theCanvas.width,theCanvas.height); context.strokeStyle = '#000';
context.strokeRect(5,5,theCanvas.width-10,theCanvas.height-10); //字体大小
context.font="50px serif"; var metrics = context.measureText(message);
//字体居中
var textWidth= metrics.width;
var xPosition=(theCanvas.width/2)-(textWidth/2);
var yPosition=(theCanvas.height/2); //选择类型
switch(fillOrStroke){
case "fill":
context.fillStyle="#ff0000";
context.fillText(message,xPosition,yPosition);
break;
case "stroke":
context.strokeStyle="#000000";
context.strokeText(message,xPosition,yPosition);
break;
case "both":
context.fillStyle="#ff0000";
context.fillText(message,xPosition,yPosition);
context.strokeStyle="#000000";
context.strokeText(message,xPosition,yPosition);
break; } }
function textBoxChanged(e){
var target = e.target;
message=target.value;
drawScreen();
}
function fillOrStrokeChanged(e){
var target = e.target;
fillOrStroke=target.value;
drawScreen();
}
} </script>
<canvas id="canvas" width="500" height="300">
你的浏览器无法使用canvas
小白童鞋;你的支持是我最大的快乐!!
</canvas>
<form>
Text:<input id="textbox" placeholder="your text" /><br />
Fill Or Stroke:
<select id="fillorstroke">
<option value="fill">fill</option>
<option value="stroke">stroke</option>
<option value="both">both</option> </select>
</form> </body>
</html>

html5 canvas在线文本第二步设置(字体边框)等我全部写完,我会写在页面底部的更多相关文章

  1. HTML5 canvas 在线画笔绘图工具(三)

    组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之 ...

  2. JavaScript 基于HTML5 canvas 获取文本占用的像素宽度

    基于HTML5 canvas 获取文本占用的像素宽度   by:授客 QQ:1033553122 直接上代码   // 获取单行文本的像素宽度 getTextPixelWith(text, fontS ...

  3. HTML5 canvas 在线画笔绘图工具(一)

    HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这 ...

  4. HTML5 Canvas绘文本动画(使用CSS自定义字体)

    一.HTML代码: <!DOCTYPE html> <html> <head> <title>Matrix Text - HTML5 Canvas De ...

  5. HTML5 Canvas Text文本居中实例

    1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...

  6. HTML5 canvas 在线画笔绘图工具(二)

    Canvas+Javascript 带图标的工具条制作 TToolbar 工具条是由一个TToolbar对象和两个按钮对象(TImageButton.TColorButton)组成,因为之前我大部分时 ...

  7. HTML5 canvas 在线画笔绘图工具(四)

    HTML5画图命令 图形的绘制是由TDrawHandler与TCommand 协同工作完成. TDrawHandler需要完成以下工作 1.聚集类用于管理绘图的命令 TCommand 2.管理鼠标事件 ...

  8. HTML5 canvas 在线涂鸦

    插件地址 http://bencentra.github.io/jq-signature/ 采用技术 jq-signature.min.js Developed using jQuery 2.1.4. ...

  9. HTML5 canvas绘制文本

    demo.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset=" ...

随机推荐

  1. idea创建web项目教程

    官网下载idea,安装配置好后,双击进来,第一次创建项目时新建是这样的 第一步:   第二步:创建项目名和项目存放的路径 点finish进入这里   第三步: 第二步点OK进入这个页面,点上面那个加号 ...

  2. Docker原理探究

    问题思考:-------------------------------------Docker浅显原理理解-------------------------------------P1. ubunt ...

  3. 李群与李代数在slam中的应用

    昨天,刚接触道了李群和李代数,查了许多资料,也看了一些视屏.今天来谈谈自己的感受. 李群是有一个挪威数学家提出的,在十九二十世纪得到了很大的发展. 其归于非组合数学,现在简单介绍李群和李代数的概念.群 ...

  4. 运用visual studio进行简单的单元测试

    昨天下午安装了visual studio,本打算晚上进行单元测试的,但当我再打开的时候就让我选择修复或卸载,修复完之后还是不能用,顿时觉得心好累啊,后来室友说要更新update5,点了更新之后就是无情 ...

  5. squid介绍和作用

    介绍 squid服务程序是一款在Unix系统中最为流行的高性能代理服务软件,通常会被当作网站的前置缓存服务,用于替代用户向网站服务器请求页面数据并进行缓存,通俗来讲,Squid服务程序会接收用户的请求 ...

  6. 学习 TTreeView [3] - Add、AddChild、AddFirst、AddChildFirst、Parent

    本例效果图: unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Contro ...

  7. Java学习之StringBuffer

              1.类介绍 ①线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但是不能修改(就是不能通过加号+连接,String就可以) ②StringBuffer和String类 ...

  8. LOJ #2145. 「SHOI2017」分手是祝愿

    题目链接 LOJ #2145 题解 一道画风正常的--期望DP? 首先考虑如何以最小步数熄灭所有灯:贪心地从大到小枚举灯,如果它亮着则修改它.可以求出总的最小步数,设为\(cnt\). 然后开始期望D ...

  9. CentOS安装git及使用Gitolite来管理版本库

    首先吐槽一下网上的各种教程,大部分都扯蛋,估计都是些所谓的"编辑"在网上瞎抄来的-- 以下内容都是基于CentOS的服务器端,Mac OS X的客户端. 如果是使用的Windows ...

  10. 【转】SPI总线协议

    SPI总线协议 By Xiaomin | April 17, 2016| 技术 概述 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总 ...