微信小程序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——齿轮转动关键代码
May 02 HTML / CSS
CSS3 实现侧边栏展开收起动画
Dec 22 HTML / CSS
利用CSS3实现文本框的清除按钮相关的一些效果
Jun 23 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
Apr 26 HTML / CSS
CSS3实现渐变背景兼容问题
May 06 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
Jul 06 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
Oct 20 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
Jun 08 HTML / CSS
html5读取本地文件示例代码
Apr 22 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
HTML5响应式(自适应)网页设计的实现
Nov 17 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
python 换位密码算法的实例详解
2017/07/19 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
Ejb技术面试题
2015/04/29 面试题
大学生的网上创业计划书
2013/12/31 职场文书
学年末自我鉴定
2014/01/21 职场文书
亲子活动总结
2014/04/26 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
国富论读书笔记
2015/06/26 职场文书
运动会通讯稿600字
2015/07/20 职场文书
病房管理制度范本
2015/08/06 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL