为什么移动响应flexible组件不直接使用window.screen.width

发布于 2022-09-06 08:27:01 字数 872 浏览 16 评论 0

看了阿里等一些响应的viewport解决方案

里面都是应用的document.documentElement.getBoundingClientRect().width来计算rem大小

不明白这里的计算这些作用,是为了做rem来计算所有容器字体等的大小宽度吗?

我目前有一个自己小单页,我直接用了window.screen.width/375(iphone6大小来等比计算),
自动注入veiwport,计算

代码如下,不知道这样做会有什么不好的效果:

function newScale(){
    var docEl = document.documentElement;

    metaEl = document.createElement('meta');
    metaEl.setAttribute('name', 'viewport');
    metaEl.setAttribute('content', 'width=375, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no');
    docEl.firstElementChild.appendChild(metaEl);

    scale = 1;
    if (window.screen.width != 375) {
        scale = window.screen.width / 375;
    }

    metaEl.setAttribute('content',  'width=375, initial-scale='+scale+', maximum-scale='+scale+', minimum-scale='+scale+', user-scalable=no');
}
newScale();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

匿名的好友 2022-09-13 08:27:01

电脑端浏览器可以拖动大小,手机 pad上也有可能分屏,所以不能直接用屏幕大小

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文