微信小程序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实现的鼠标悬停动画按钮
Dec 29 HTML / CSS
css3加js做一个简单的3D行星运转效果实例代码
Jan 18 HTML / CSS
CSS3中伪元素::before和::after的用法示例
Sep 18 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
有关HTML5页面在iPhoneX适配问题
Nov 13 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
Jun 20 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
Jan 07 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
Jul 09 HTML / CSS
如何使用 resize 实现图片切换预览功能
Aug 23 HTML / CSS
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
Apr 19 HTML / CSS
css3 文字断裂效果
Apr 22 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截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
js a标签点击事件
2017/03/30 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
js实现验证码功能
2020/07/24 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
Python利用IPython提高开发效率
2016/08/10 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
博士学位自我鉴定范文
2013/12/26 职场文书
致跳远、跳高运动员广播稿
2014/01/09 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
餐厅筹备计划书
2014/04/25 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
故宫英文导游词
2015/01/31 职场文书
营运督导岗位职责
2015/04/10 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
光荣之路观后感
2015/06/12 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
简单聊聊Golang中defer预计算参数
2022/03/25 Golang