微信小程序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 和 HTML5 兼容速查表 图文
Apr 01 HTML / CSS
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
Dec 19 HTML / CSS
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
Dec 30 HTML / CSS
使用css3制作动感导航条示例
Jan 26 HTML / CSS
使用css3和jquery实现可伸缩搜索框
Feb 12 HTML / CSS
CSS3制作hover下划线动画
Mar 27 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
Jun 27 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
Mar 01 HTML / CSS
使用Html5、CSS实现文字阴影效果
Jan 17 HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
Jan 09 HTML / CSS
奇妙的 CSS shapes(CSS图形)
Apr 05 HTML / CSS
css3带你实现3D转换效果
Feb 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
PHP attributes()函数讲解
2019/02/03 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
探索Vue高阶组件的使用
2018/01/08 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
深入解析Python编程中super关键字的用法
2016/06/24 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python机器学习实战之K均值聚类
2017/12/20 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python安装本地whl的实例步骤
2019/10/12 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
毕业生的自我评价
2013/12/30 职场文书
生活部的活动方案
2014/08/19 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书