侧边栏跟随滑动即将离开视窗时固定在侧边的效果

有时候网页主体内容居中,分左右两个模块,左边为侧边栏,右边为主要内容。侧边栏的长度有限(小于视窗高度),固定为一定的高度,主要内容过多时就会导致侧边空旷,看起来不太美观,所以在网页滑动到视窗失去侧边栏的时候再把侧边内容固定在视窗的侧边是一种比较好的处理方法。
本文所写的方法相对来说比较简单,具体思路如下:

<div class="container">
	<div id="fixed" class="menu"></div>
	<div class="content"></div>
</div>

侧边栏固定宽度,主体内容占一定宽度比

.container{
	display: flex;
	width: 1440px;
}
.menu{
	width: 340px;
	margin-right: 24px;
}
.fixed{
	/* sticky 是根据正常文档流进行定位的 */
	position: sticky;
	top: 30px;
	left: 0;
}
.content{
	width: 70%;
}

监测网页的滚动事件,当页面的的 scrollTop 大于 menu 的高度时,更改 menu 的样式

(function () {
	var target = document.getElementById("fixed")
	var t_height = target.clientHeight
	window.onscroll = function () {
		var overHeight = document.body.scrollTop || document.documentElement.scrollTop
		overHeight > t_height ? target.className = "fixed" : target.className = "menu"
	};
})();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值