javascript - flexible.js源码疑问

查看:126
本文介绍了javascript - flexible.js源码疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

对flexible.js中的源码有疑问,如下

function refreshRem(){
     var width = docEl.getBoundingClientRect().width;
     if (width / dpr > 540) {
        width = 540 * dpr;
     }
     var rem = width / 10;
     docEl.style.fontSize = rem + 'px';
     flexible.rem = win.rem = rem;
}
flexible.px2rem = function(d) {
   var val = parseFloat(d) / this.rem;
   if (typeof d === 'string' && d.match(/px$/)) {
       val += 'rem';
   }
   return val;
}

这里的px2rem是直接除以fontSize的大小,而fontSize的计算是基于手机页面宽度,若手机页面宽度为640px,设计稿宽度为750px,那么rem岂不等于 px/64, 不应该是 px/75吗,这个px是设计稿的元素px值吗,还是手机上的px值,此处代码是否有误?

解决方案

传进去的值肯定是在手机上显示的px值了 this.rem就是html标签上的值, 它没办法知道你的设计稿的总宽吧
rem2px 方法也是手机上的rem值
方法没错你把它的功能想错了, 不过你实现一个函数实现你想的功能也是可以实现的吧

这篇关于javascript - flexible.js源码疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆