微信小程序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制作动感导航条示例
Jan 26 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
用CSS3的box-reflect设置文字倒影效果的方法讲解
Mar 07 HTML / CSS
HTML5使用Audio标签实现歌词同步的效果
Mar 17 HTML / CSS
HTML5之SVG 2D入门7—SVG元素的重用与引用
Jan 30 HTML / CSS
html5通过postMessage进行跨域通信的方法
Dec 04 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
Mar 15 HTML / CSS
Html5之title吸顶功能
Jun 04 HTML / CSS
HTML5语义化元素你真的用对了吗
Aug 22 HTML / CSS
css中有哪些方式可以隐藏页面元素及区别
Jun 16 HTML / CSS
html原生table实现合并单元格以及合并表头的示例代码
May 07 HTML / CSS
浅谈css清除浮动(clearfix和clear)的用法
May 21 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
accesskey 提交
2006/06/26 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
JS实现简易日历效果
2021/01/25 Javascript
python字符串替换示例
2014/04/24 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
最新奶茶店创业计划书
2014/01/25 职场文书
联欢晚会主持词
2014/03/25 职场文书