微信小程序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 相关文章推荐
使用JS+CSS3技术:让你的名字动起来
Apr 27 HTML / CSS
CSS3控制HTML元素动画效果
Feb 08 HTML / CSS
W3C公布最新的HTML5标准草案
Oct 17 HTML / CSS
Javascript 高级手势使用介绍
Apr 21 HTML / CSS
HTML5 预加载让页面得以快速呈现
Aug 13 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
Jul 07 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
Feb 18 HTML / CSS
mui几种页面跳转方式对比总结概括
Aug 18 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
Jun 01 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
浅谈CSS不规则边框的生成方案
May 25 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
jquery网页加载进度条的实现
2017/06/01 jQuery
详解Angular 自定义结构指令
2017/06/21 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Python通过文本和图片生成词云图
2020/05/21 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
中专毕业生自荐信范文
2013/11/28 职场文书
2014全年工作总结
2014/11/27 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
MSSQL基本语法操作
2022/04/11 SQL Server
SQL Server中使用表变量和临时表
2022/05/20 SQL Server