html5 canvas在线文本第二步设置(字体边框)等我全部写完,我会写在页面底部
<!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在线文本第二步设置(字体边框)等我全部写完,我会写在页面底部的更多相关文章
- HTML5 canvas 在线画笔绘图工具(三)
组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之 ...
- JavaScript 基于HTML5 canvas 获取文本占用的像素宽度
基于HTML5 canvas 获取文本占用的像素宽度 by:授客 QQ:1033553122 直接上代码 // 获取单行文本的像素宽度 getTextPixelWith(text, fontS ...
- HTML5 canvas 在线画笔绘图工具(一)
HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这 ...
- HTML5 Canvas绘文本动画(使用CSS自定义字体)
一.HTML代码: <!DOCTYPE html> <html> <head> <title>Matrix Text - HTML5 Canvas De ...
- HTML5 Canvas Text文本居中实例
1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...
- HTML5 canvas 在线画笔绘图工具(二)
Canvas+Javascript 带图标的工具条制作 TToolbar 工具条是由一个TToolbar对象和两个按钮对象(TImageButton.TColorButton)组成,因为之前我大部分时 ...
- HTML5 canvas 在线画笔绘图工具(四)
HTML5画图命令 图形的绘制是由TDrawHandler与TCommand 协同工作完成. TDrawHandler需要完成以下工作 1.聚集类用于管理绘图的命令 TCommand 2.管理鼠标事件 ...
- HTML5 canvas 在线涂鸦
插件地址 http://bencentra.github.io/jq-signature/ 采用技术 jq-signature.min.js Developed using jQuery 2.1.4. ...
- HTML5 canvas绘制文本
demo.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset=" ...
随机推荐
- hexo搭建
http://blog.csdn.net/gdutxiaoxu/article/details/53576018
- 第二个Sprint计划
第一个Sprint计划已完成基本框架,接着第二个计划 时间:5月30-6月3日 目标:能够将各个框架连接起来,实现基本功能,并查看数据库连接. 分工:杜殷浩:查看数据库连接,创建数据库. 何广强:实现 ...
- jenkins配置过程中踩过的一些坑
1,编译通过之后,想要将编译好的war包放到远程服务器上,并解压 unzipBus.sh的脚本如下: #!/bin/bash jar -xvf bus.war 编译后报错:jar:Command no ...
- SQL Server 删除重复数据只保留一条
DELETE FROM Bus_TerminalMessage_Keywords WHERE Content IN (select Content from Bus_TerminalMessage_K ...
- 【python】自学笔记
参考文献 1.环境安装 1.1 python 工作环境 2.7.14 1.2 pycharm community2018.1.1 4 x64 2.第一行代码 2.1 python交互模式, >& ...
- Spring transaction与EJB transaction的关系
TransactionDefinition Interface that defines Spring-compliant transaction properties. Based on the p ...
- 在vue中使用weixin-js-sdk自定义微信分享效果
在做微信分享的时候,产品要求分享效果要有文字和图片,使用weixin-js-sdk解决了, 原始的分享效果: 使用微信JS-SDK的分享效果: 首先需要引入weixin-js-sdk npm inst ...
- mybatis之DAO层自动实现接口
* 使用mybatis举例,使用DAO接口方式实现* 不需要针对接口去编写具体的实现类代码,编写映射XML文件,直接拿来使用即可.* 1.导入jar包:mybatis和mysql-connector* ...
- SQLServer将一个表的数据导入到另一个表
1.假如A表存在 insert into A(a,b,c) (select a,b,c from B) 2.假如A表不存在 select a,b,c into A from B 3.假如需要跨数据库 ...
- 【题解】 bzoj2460: [BeiJing2011]元素 (线性基)
bzoj2460,戳我戳我 Solution: 线性基板子,没啥好说的,注意long long 就好了 Code: //It is coded by Ning_Mew on 5.29 #include ...