js设置div高度低于滚动高度时固定

今天在电脑端看csdn时,发现文章界面一般分为三大块:左边侧边栏显示用户基本信息和广告、中间文章部分、右边用户的文章专栏。整体用的是float。右边的文章position设置为fixed。左边侧边栏是当滚动高度超过侧边栏高度时,设置为fixed,即这时候侧边栏保持不变,bottom=0

    let aside = document.getElementsByClassName('aside')[0]
    let asideTop = aside.offsetTop
    let asidescroll = document.body.scrollTop
    let asideBottom = aside.offsetTop + aside.clientHeight
    window.addEventListener('scroll', function() {
      let screenBottom =
        document.documentElement.scrollTop +
        document.documentElement.clientHeight //获取当前界面距离顶部的高度
      if (asideBottom < screenBottom) {
        aside.classList.add('fixed')
      } else {
        aside.classList.remove('fixed')
      }
    })

在写右边栏position:fixed时出现了一点问题
跟着CSDN模仿着写的。
在设置右边recommend时,高度设置height:100%时,会出错。
这是因为flex布局的问题,flex布局内即使形状上被子元素撑开了,但是实际上还是没有撑开的。

因为整个页面是flex,使用了
justify-content:center
align-item:center

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值