需求场景
现在大部分M站的页面布局都是通过 flexible 的方案解决,flexible.js 里面提供了 px2rem 的函数方法,有些页面需要 js 中动态转换 px 为 rem 给元素设置样式,这时候就有两种方案:

  • 自己写一个函数方法,
  • 使用 flexible 提供的 px2rem;
    本着图省事的方案,采用直接找 flexible 的方法。但是竟然在 window 下没找到。

问题排查过程

  • 第一步,在 index.ejs 中找到了 flexible 的初始化代码,并且把 flexible 挂在了 window.lib 下,

  • 第二步,但是页面初始化完成之后,打印 winlow.lib,得到的却是以下结果:

  • 第三步,思考,应该是 window.lib 被某一步复写了。找到了罪魁祸首:public/lib/debug/lib.js 中,var lib, 直接把 lib 挂在到了 window,lib 被复写!

  • window.lib 被调用的地方:最后会被 webpack 以 script src 的方式引入到页面中

解决方案

  1. 修改 public/lib/debug/lib.js(开发环境)和 public/lib/min/lib.b545ebd6b.js (生产环境)的 var 为 let;亲测可行,风险小(但是不保证无风险);
  2. 修改 flexible 初始化挂载的时候不挂载在 window.lib,修改为 window.H5fit,如下图示:(应该无风险,但是不保证)
  3. flexible 初始化挂载的时候再增加一个window对象的赋值,无风险(冗余代码,让新人摸不着头脑):

    结论:
    个人建议第二种,并且希望在后续的模板规划中规避这个问题。

flexible.px2rem相关推荐

  1. 移动端适配方案 flexible.js

    前言 移动端适配一直以来都是前端开发中不可或缺的重要组成部分,如果没有了它,那么你做出来的页面极有可能会出现各种意外(写出来的页面与设计稿之间的差别).所有我们得找到一种相对来说让人比较满意的解决方案 ...

  2. 移动端适配--flexible.js

    引言: H5适配一直是一个比较普遍的问题,很多文章都会讲,最近开发了一个H5的项目使用了一下淘宝的 flexible.js,写一篇文章自己总结一下. 一.背景介绍: Flexible.js是淘宝公开的 ...

  3. 移动端 flexible.js 布局详解

    原本想直接引入原文链接,但是又担心作者哪天想不开注销账号,这么好的一篇文章看不到了,还是转载一下吧(/ω\). 另外推荐一篇好文:移动端rem自适应实操讲解 本文讲的通过 flexible.js 实现 ...

  4. reset.css 和 flexible.js

    重置css默认样式(淘宝): body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, f ...

  5. 使用Flexible实现H5页面的终端适配

    使用方法 建议对于js做内联处理,在所有资源加载之前执行这个js. 执行这个js后,会在html(也就是document.documentElement)上增加一个data-dpr属性,以及font- ...

  6. CSS—移动端适配方案flexible.js

    目录 一.概述 二.详解 一.概述 移动端适配一直以来都是前端开发中不可或缺的重要组成部分.flexible.js插件是一个终端设备适配的解决方案.flexible.js插件通过实现rem单位的自适应 ...

  7. flexible.js在华某为手机上使用rem时,页面宽度超出手机屏幕宽度

    问题:手机端项目在华为的某款手机上显示时页面内容没有自适应手机宽度,出现横向滚动条 原因:手机获取手机屏幕宽度并计算出rem时出现偏差,明显宽余真实手机屏宽度 解决方案一:在页面里获取页面最外层dom ...

  8. 移动端适配flexible.js

    1.什么是flexible.js 是一个终端设备适配的解决方案. 是一个用来适配移动端的javascript框架.根据宽度的不同设置不同的字体大小,样式间距都使用rem作为单位,不同屏幕大小适配不同的 ...

  9. react+flexible兼容分辨率

    1. 先生成配置文件 先git add . 然后git commit -m "init" 然后再npm run eject 运行之后会生成config文件夹 2.安装flexibl ...

最新文章

  1. NFS简单应用场景及简单的环境搭建
  2. table标签修改tr,td标签的行距
  3. wince下的蓝牙串口通信
  4. 显示部分数据标签_长春市农贸市场监测数据显示:粮油和水果价格平稳,部分副食品价格小幅波动...
  5. 基于注册中心的Dubbo服务
  6. Cookie application session
  7. cudamemcpy运行速度很慢_只要设置好这几个选项,让你的 PS CC 2019 运行如飞
  8. js解析json数组+java对象转json字符串
  9. 这 10 行比较字符串相等的代码给我整懵了,不信你也来看看
  10. RocketMQ消息存储、刷盘、负载均衡
  11. 【kafka】Kafka 2.3 空消费组延时rebalance
  12. ResNet----残差结构
  13. IGBT简介、结构及原理
  14. AutoCAD2018_注释及标注
  15. 整车控制器(VCU,vehicle Controller Unit)
  16. java验证密码_java实现验证用户账号密码的功能
  17. C++ 二元一次方程组算法
  18. 拓嘉辰丰电商:拼多多宝贝排名查询方法
  19. Win11开始菜单关机键不见了怎么办?
  20. “三色鸽杯”南阳市第四届十大新闻人物揭晓

热门文章

  1. 二叉树遍历(递归实现前序/中序/后序遍历)
  2. 【并行算法】知识点总结(一、二、三、九章)
  3. Python视觉深度学习系列教程 第三卷 第2章 什么是ImageNet?
  4. json学习(pythonj)
  5. 2007年度網絡最新警句,樂不死你
  6. 如何迈过职业生涯的5个坎
  7. linux 打开telnet 端口命令行,linux系统打开telnet端口的方法
  8. JqGrid实现超长水平(左右)滚动条功能
  9. 通信工程专业课和毕业后的工作关系
  10. 云课堂在登陆时显示服务器错误,原神无法登录服务器错误码4201怎么办