解决因加了position:fixed后不随着滚动条而动的问题

846 阅读1分钟

前言

上一篇笔记中我记录了用rem实现的自适应的需求。当实现了自适应后,发现了在窗口缩成小窗口时,用横向滚动条的时候,页面的头部因为用了绝对定位position:fixed,所以并不会随着滚动条而动。

思路

监听浏览器的滚动条的滚动,给予dom的style赋予一个left,手动使它跟着滚动。

实现代码

window.onscroll = function() {
      let sl = -Math.max(document.body.scrollLeft, document.documentElement.scrollLeft);
      if (sl < 0) {
        document.getElementById('fixed').style.left = sl + 'px';
      } else {
        document.getElementById('fixed').style.left = 0;
      }