微信小程序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的flexbox实现水平垂直居中与三列等高布局
Sep 12 HTML / CSS
使用CSS3在触屏上为按钮实现激活效果
Sep 27 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 HTML / CSS
HTML5离线缓存Manifest是什么
Mar 09 HTML / CSS
canvas烟花特效锦集
Jan 17 HTML / CSS
html5-Canvas可以在web中绘制各种图形
Dec 26 HTML / CSS
html5指南-3.如何实现html元素拖拽功能
Jan 07 HTML / CSS
Html5新特性用canvas标签画多条直线附效果截图
Jun 30 HTML / CSS
HTML5中drawImage用法分析
Dec 01 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
Mar 22 HTML / CSS
video.js支持m3u8格式直播的实现示例
May 20 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP新手上路(七)
2006/10/09 PHP
smarty实例教程
2006/11/19 PHP
完美解决PHP中文乱码
2009/11/26 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
javascript实现数独解法
2015/03/14 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
python多线程操作实例
2014/11/21 Python
Ubuntu下安装PyV8
2016/03/13 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
什么是.net
2015/08/03 面试题
方正Java笔试题
2014/07/03 面试题
两年的个人工作自我评价
2014/01/10 职场文书
师德师风演讲稿
2014/05/05 职场文书
项目建议书模板
2014/05/12 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
优秀班集体申报材料
2014/12/25 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书