当前位置 : 主页 > 手机开发 > 无线 >

移动端兼容小计

来源:互联网 收集:自由互联 发布时间:2021-06-10
1、页面布局: 由于手机型号多样导致页面高宽比非常多,在制作上会有出现不同手机在同一套css下面显示效果不尽如人意,所以需要进行兼容性处理。 方式很多比如直接套用类似boo

1、页面布局:

由于手机型号多样导致页面高宽比非常多,在制作上会有出现不同手机在同一套css下面显示效果不尽如人意,所以需要进行兼容性处理。

方式很多比如直接套用类似bootstrap类的框架,可以使用rem等相对单位。这里我主要使用的是媒体查询和vw和vh单位和百分比来进行处理。

100vw为整个屏幕的宽度,100vh为屏幕高度,其实和百分比的做法很相似,只不过把计算的值单位换成vw或者vh。

2、碰到的兼容问题,主要是ios:

a、ios: optgroup使用会出现select的选择文本靠左无法修改,同时在optgroup上的class等选择器无法进行样式修改,最好不用

b、ios:overflow:scroll 的盒子滑动不畅,在css添加 -webkit-overflow-scrolling: touch;  详情可以看这个链接了解:https://www.cnblogs.com/xiahj/p/8036419.html

c、当你点击ios的可点击元素时会出现一个半透明的背景,可以设置-webkit-tap-highlight-color: rgba(0, 0, 0, 0);来去除。

d、a,button等可点击标签最好加上cursor:pointer;属性,ios可能无法点击。

e、不要写es6的语法,低版本的手机无法编译,会报错

f、canvas画图:使用的是html2canvas,做了一个将几个页面元素合并利用canvas画成一张图片长按保存图片的效果,本地图片可以正常画图。

由于ios的安全问题,线上正常的图片地址是没有办法画图成功的,尝试过把线上的图片链接通过canvas.toDataURL(‘图片类型‘)在本地先转成base64链接在进行画图,但是ios由于安全问题无法使用toDataURL方法,所以失败了。

最后是让后端人员先把图片地址转成base64再返回给前端,这样是可以画图成功的。另外如果是背景图的话会模糊,所以请使用<img>。

可参考文章:https://www.jianshu.com/p/22bd5b98e38a

使用方式:

html:
    <p class="share-notice" data-html2canvas-ignore>长按保存图片,邀请好友来点赞</p> //data-html2canvas-ignore 如果有某个元素是你希望不被绘图的那么加上这个属性就好了

js: <script type="text/javascript" src="/v2/js/base/html2canvas.min.js"></script> html2canvas(document.getElementById(‘share-page‘), { //要绘制canvas的选择器 allowTaint: true, // backgroundColor: null //在生成canvas时底部多了一条线 这个设置成null解决了 }).then(function(canvas) { var url = canvas.toDataURL() $(‘.canvas-img‘).attr(‘src‘, url) })

g、摇一摇,声音播放:

 

 

3、调试使用:vconsole cdn:https://www.bootcdn.cn/vConsole/

在页面引入:<script src="http://img.558idc.com/uploadfile/allimg/210610/23461564W-1.jpg"></script>

在使用的页面:var vConsole = new VConsole(); 

这样就可以在手机上看到调试信息了

网友评论