微信小程序canvas实现水平、垂直居中效果


Posted in HTML / CSS onFebruary 05, 2020

最近做一个刮刮卡,需要将文字在canvas中水平、垂直居中

微信小程序canvas实现水平、垂直居中效果

wxml

<canvas type='2d' id="myCanvas" width="300" height="150"  style="background:yellow;" \>

 

使用canvas2d构建画布

微信小程序canvas实现水平、垂直居中效果

蓝色线为水平中线

红色线为垂直中线

文本设置方法

fillText 方法为canvas设置文本方法,使用如下所示

ctx.fillText('文本内容', x, y)

x为横轴坐标

y为纵轴坐标

上例将文本内容设置在canvas画布的坐标位置上,跳脱web的开发思维,我们可以认为X点相对于文本有左,中,右三种布局,Y点相对于文本有上、中、下的布局,这样就很好理解文本在canvas上是如何绘制了

水平居中

找到X轴的中点位置,如上图,在150px这个点上

注意X点相对于文本的位置

ctx.fillStyle = '#aaa'
ctx.font = 'bold 30px "Gill Sans Extrabold"'
ctx.textAlign = 'center'
ctx.fillText('文本内容', 150, 0)

微信小程序canvas实现水平、垂直居中效果

图示只作说明

垂直居中

找到X轴的中点位置,如上图,在75px这个点上

注意Y点相对于文本的位置

 

ctx.fillStyle = '#aaa'
ctx.font = 'bold 30px "Gill Sans Extrabold"'
ctx.textBaseline = 'middle'
ctx.fillText('文本内容', 0, 75)

微信小程序canvas实现水平、垂直居中效果

图示只作说明

完美居中

ctx.fillStyle = '#aaa'
ctx.font = 'bold 30px "Gill Sans Extrabold"'
ctx.textAlign = 'center'
ctx.textBaseline = 'middle'
ctx.fillText(opts.maskerTitle, left, top)

总结

以上所述是小编给大家介绍的小程序中canvas实现水平、垂直居中效果,希望对大家有所帮助!

HTML / CSS 相关文章推荐
基于css3的属性transition制作菜单导航效果
Sep 01 HTML / CSS
CSS3 实现弹幕的示例代码
Aug 07 HTML / CSS
CSS 3.0文字悬停跳动特效代码
Oct 26 HTML / CSS
CSS3实现的渐变幻灯片效果
Dec 07 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
Jan 09 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
Jan 30 HTML / CSS
HTML5所有标签汇总及标签意义解释
Mar 12 HTML / CSS
HTML5有哪些新特征
Dec 01 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
html2canvas把div保存图片高清图的方法示例
Mar 05 HTML / CSS
关于flex 上下文中自动 margin的问题(完整例子)
May 20 HTML / CSS
基于HTML十秒做出淘宝页面
Oct 24 HTML / CSS
Html5定位终极解决方案
Feb 05 #HTML / CSS
canvas简单连线动画的实现代码
Feb 04 #HTML / CSS
html5手机键盘弹出收起的处理
Jan 20 #HTML / CSS
canvas实现烟花的示例代码
Jan 16 #HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
Jan 14 #HTML / CSS
Html5跳转到APP指定页面的实现
Jan 14 #HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 #HTML / CSS
You might like
一个odbc连mssql分页的类
2006/10/09 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
Python栈类实例分析
2015/06/15 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
Python netmiko模块的使用
2020/02/14 Python
如何写python的配置文件
2020/06/07 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
学校师德承诺书
2014/05/23 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
水电维修专业推荐信
2014/09/06 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
小学生节水倡议书
2015/04/29 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS