滑动一定距离固定div

本文最后更新于:2021年3月3日 凌晨

知乎和简书等一些文章阅读,右边为内容栏,左边为作者信息,作者信息会比较短,所以在滑动一段距离后,会固定
页面初始
拉下来后页面左边栏固定
实现方法如下:

  1. 获取四个数据,包括:当前窗口的高度,需要固定div的y轴距离和高度,参照div的y轴距离
    let windowHeight = window.innerHeight
    let divHeigh = document.getElementById('xxx').offsetHeight
    let divY = document.getElementById('xxx').getBoundingClientRect().y
    let divFriendY = document.getElementById('xxx').getBoundingClientRect().y
    页面布局
  2. 判断什么时候举要固定
    // 监听全局滚栋事件
    window.addEventListener("scroll", () => {
    	// 当divHeight大于屏幕高度
    	if(divHeight>windowHeight){
    		// 当div显示到末尾时
    		if(divY<=windowHeight-divHeight){
    			document.getElementById('xxx').style.position = "fixed"
    			... // 按需求配置
    		}
    		if(divFriendY >= windowHeight - divHeight){
    			document.getElementById('xxx').style.position = "relative"
    			... // 按需求配置
    		}
    	}else{
    		// 当divHeight小于等于屏幕高度
    		document.getElementById('xxx').style.position = "fixed"
    		... // 按需求配置
    	}
    })

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!