美文网首页
canvas画的文字在安卓移动设备上可以显示,但是在ios移动设

canvas画的文字在安卓移动设备上可以显示,但是在ios移动设

作者: 来碗鸡蛋面 | 来源:发表于2019-08-04 00:17 被阅读0次

原创声明

本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:
笔名:来碗鸡蛋面
简书主页:https://www.jianshu.com/u/4876275b5a73
邮箱:job_tom@foxmail.com
CSDN ID:tom_wong666

如题,注释了大部分代码后,最终发现问题出在段代码上:

//UI设计基础宽度:750px;
ctx.font = "3rem sans-serif";

一开始担心是iOS Safari的壳不支持canvas,查了https://caniuse.com/ 发现其实是支持的。

查询结果如下:

canvas支持情况查询结果

项目中做了移动端rem适配的(在基础UI设计宽度为750px的情况下,1rem=12.5px),

document.documentElement.style.fontSize = document.documentElement.clientWidth / 60 + "PX";

所以直接用了rem,但是iOS Safari只支持标准的canvas,标准的canvas只支持px不支持rem。

所以这个问题解决方案是将rem转换回px,如下:

//UI设计基础宽度:750px;
ctx.font = 3*12.5+"px sans-serif";

但是移动端有各种宽度的屏幕,为了适应各种屏幕是不能写死,所以最终下法应该如下:

//获取设备宽度
let  clientWidth = document.documentElement.clientWidth;
//根据设计图中的canvas font字体的占比进行设置
let fontWidth = clientWidth*3*12.5/750;
//设置自适应的字体大小
ctx.font = fontWidth+"px sans-serif";

相关文章

  • canvas画的文字在安卓移动设备上可以显示,但是在ios移动设

    原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:笔名:来碗鸡蛋面简书主页:ht...

  • 一、移动端知识清单

    什么是移动端? 移动端指的是手机(安卓手机,ios手机)、平板电脑(安卓、ios)、ipod等便携设备 作为开发者...

  • APP概括

    移动端:运行在移动设备上的产品移动设备:手机 平板我们做的页面只适用于安卓系统和ios系统,诺基亚是Windows...

  • 浅谈移动端适配

    手机设备屏幕尺寸不一,做移动端的Web页面,需要考虑在安卓/IOS的各种尺寸设备上的兼容,所谓移动端适配,就是在不...

  • vue移动端项目在ios上图片不显示问题

    问题描述 vue移动端项目图片,在电脑和安卓预览都没问题,但是在ios系统上出现了图片显示不出来的问题。 原因 恕...

  • 简单总结swiper框架的使用

    简介 swiper是一个免费的轻量级的,主要处理移动设备 触控滑块 的js框架,主要是为iOS设计的,但是在安卓,...

  • 前端开发常见问题精选(二)

    一、如何解决Canvas画布在移动端显示模糊的问题? Canvas画布在PC端显示正常,但是放在移动端却发现整个画...

  • 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。本文解释了如何在你...

  • 移动端渲染1px边框

    移动端渲染1px边框,在安卓设备上ok,没问题,但是到了ios设备上,渲染的会是2px,甚至是3px。可是明明写的...

  • Laya 调试工具——Weinre

    开发游戏避免不了调试,如果游戏的运行环境是移动设备的话,安卓可以使用Chrome inspect调试,IOS如果没...

网友评论

      本文标题:canvas画的文字在安卓移动设备上可以显示,但是在ios移动设

      本文链接:https://www.haomeiwen.com/subject/tpgsdctx.html