微信小程序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 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
html5定位并在百度地图上显示的示例
Apr 27 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
May 12 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
Mar 21 HTML / CSS
完美解决IE8下不兼容rgba()的问题
Mar 31 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
Jul 31 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
Nov 21 HTML / CSS
纯CSS实现hover图片pop-out弹出效果的实例代码
Apr 16 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 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
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
详解php用static方法的原因
2018/09/12 PHP
php写app用的框架整理
2019/09/29 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
js实现登录与注册界面
2017/11/01 Javascript
python将字符串转换成数组的方法
2015/04/29 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
python计算方程式根的方法
2015/05/07 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
一道Delphi面试题
2016/10/28 面试题
机电一体化专业应届本科生求职信
2013/09/27 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
土建专业毕业生自荐书
2014/07/04 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书