h5页面的viewpoint

自作多情 提交于 2019-12-30 22:22:50

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

        只要写手机端的h5页面,viewpoint是绕不过的坎,不处理好这个东西,h5页面就无法正常显示。那它到底是怎么回事呢?

        网上曾看到一个据说很有名的外国人,写过一篇"三个viewpoint"的概念,但是看了,觉得似懂非懂,后来做了不少h5页面,然后重新思考viewpoint到底是一种怎样的控制移动端页面的机制?于是我也觉得用"3个viewpoint"解释比较好说,不过跟网上那个外国大佬的"三个viewport"可能会有不少区别

        第一个viewpoint,这里临时命名为viewpoint1,就是手机硬件屏幕的水平像素数,比如iPhone6分辨率是750像素,那么这个viewpoint就是750
        第二个viewpoint,这里临时命名为viewpoint2,是设计稿尺寸宽度,通常是以一个用户占有率比较高的手机分辨率为基准,很多就是用iPhone6的750
        第三个viewpoint,这里临时命名为viewpoint3,就是手机浏览器画布的宽度,它通常有一个远大于硬件分辨率的尺寸,比如980px,和主流PC端网页的内容主体宽度相当。前端能够直接施加影响的就只有viewpoint3这个了,实际上客观存在的viewpoint可以说也只有这一个而已,可以在html中用标签meta设置,也可以JS动态设置。

        最终用手机浏览h5页面看到的效果,则是这三个viewpoint共同作用的。 在没有代码干预的情况下,一般手机会有一个从viewpoint3到viewpoint1的缩放。手机为什么要设计这个机制呢?因为手机硬件屏幕小,但是又想让手机能正常浏览PC的页面。

        为了更好的体验,人们开始为手机定制web页面,比如既然iphone6是750px,那我就做750px的页面。可是即便如此,手机实际看到的页面效果却仍然是被缩放了,因为750px的页面还是要放入到980px的viewpoint3中来显示,而缩放是viewpoint3到viewpoint1的过程,和设计稿宽度,同时也是页面实际宽度的viewpoint2是无关的。

        如果我不想页面缩放呢?那就可以把viewpoint3的默认值980px改成viewpoint2设计稿的宽度750px,然后viewpoint3到viewpoint1的缩放就成了750px到750px的缩放,也就是没有缩放。有人可能说,你这750px是给iPhone6专门设计的,其他分辨率的手机呢?其他手机基本也会正常显示,和iPhone6的区别仅仅是有缩放和没缩放,但实际效果差不多,因为其他主流手机分辨率就算和iPhone6不同也不会差很远,所产生的缩放的效果也很微小。

        这就是所谓三个viewpoint共同决定页面效果的机制了,实际挺主流的一种做法用了一堆js,它又是怎么做的呢?以后有空慢慢说吧。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!