前端页面自适应大小,动态rem

📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!

任意浏览器的默认字体高都是16px,默认情况下html的1rem = 16px
在这里插入图片描述
当页面设置为:

html {
  font-size: 100px;
}
body {
  font-size: 0.18rem;
}

此时:标题20px, 可设置为0.2rem ;图标宽度36px,可设置为0.36rem

由于rem是相对页面根元素html的大小,所以可以通过动态改变根元素的大小来全局改变页面元素的大小,从而达到自适应不同分辨屏幕的效果。动态改变根元素的代码如下:

var ScreenResize: any = {
  designWidth: 1920,
  designHeight: 1080,
  minHeight: 768,
  minWidth: 1280,

  resize: function () {
    scale: this.designWidth / this.designHeight;
    var htmlWidth = Math.max(document.documentElement.clientWidth, ScreenResize.minWidth)
    var htmlHeight = Math.max(document.documentElement.clientHeight, ScreenResize.minHeight);
    document.documentElement.style.fontSize = (htmlHeight / (ScreenResize.designHeight / 100)) + "px";
    document.documentElement.style.minHeight = ScreenResize.minHeight + "px";
    document.documentElement.style.minWidth = ScreenResize.minWidth + "px";
    document.documentElement.style.width = htmlWidth + "px";
    document.documentElement.style.height = htmlHeight + "px";
  }
};
ScreenResize.resize();

var throttle = function (func: any, delay: number) {
  var timer: any = null;
  var startTime = Date.now();
  return function () {
    var curTime = Date.now();
    var remaining = delay - (curTime - startTime);
    clearTimeout(timer);
    if (remaining <= 0) {
      func();
      startTime = Date.now();
    } else {
      timer = setTimeout(func, remaining);
    }
  }
}
window.addEventListener('resize', throttle(() => ScreenResize.resize(), 1000));

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卸载引擎

如果对您有帮助,请赏个饭吃

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

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

打赏作者

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

抵扣说明:

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

余额充值