H5-通用兼容适配函数

10 篇文章 0 订阅
文章介绍了如何封装一个setFlexible函数用于移动端页面的自适应布局,设置meta标签的viewport内容以及动态调整html根元素的字体大小。同时,提到了在React组件中,可以通过componentWillUnmount生命周期方法来销毁resize事件监听器,确保性能优化。
摘要由CSDN通过智能技术生成

目录

 一、封装setFlexible函数

 二、页面里面销毁


 一、封装setFlexible函数

function setFlexible() {
  let doc = window.document;
  let docEl = doc.documentElement;
  let dpr = window.top === window.self ? 1 : devicePixelRatio;
  // 设置meta标签
  let metaEl = document.querySelector('meta[name="viewport"]');
  if (!metaEl) {
    metaEl = document.createElement('meta');
    metaEl.name = 'viewport';
    doc.head.appendChild(metaEl);
  }
   // 设置缩放比例
   const scale=1/dpr;
   //设置meta标签内容
   metaEl.content=`initial-scale=${scale},maximum-scale=${scale},minimum-scale=${scale}`;
   
   //设置html根元素dpr值
   docEl.setAttribute("data-dpr", dpr);
   function refreshRem() {
     let width=doc.body.clientWidth || docEl.clientWidth;
     const desinWidth=1920; 
     
     if(width / dpr > desinWidth){
       width=desinWidth * dpr;
     }
      if (width <=1200) {
        width=1200;
      }
      const fontSize=(20 * (width / desinWidth)).toFixed(2)+'px';
      //设置html根元素字体大小,如果不支持addEventListener,则直接返回 
      if(doc.addEventListener){
         docEl.style.fontSize=fontSize;   
         window.addEventListener('resize',refreshRem,false);
         return ;
       }else{
          return ;
       }  
    }
    refreshRem();
}
setFlexible();

 二、页面里面销毁

在 React 中,可以通过使用 componentWillUnmount 生命周期函数来销毁 flexBile() 函数:
componentWillUnmount() {
    window.removeEventListener('resize', this.refreshRem);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web_icon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值