vue 页面中有上中下三个组件,如何做到让中间那个组件滑到顶部时吸附在顶部不动

要实现让中间组件滑动到顶部并吸附在顶部不动的效果,可以使用 CSS 的 position 属性和 JavaScript 监听滚动事件来实现。

  • 首先,在中间组件的 CSS 样式中设置 position: fixed; 和 top: 0; 来固定组件在顶部位置。这样当滚动页面时,中间组件会一直保持在页面顶部。
  • 然后,在页面中添加一个监听滚动事件的 JavaScript 事件处理程序。在事件处理程序中,检查中间组件的位置是否小于或等于页面滚动条的位置。如果是,则为中间组件添加一个类名来使其固定在顶部。否则,则从中间的组件中删除该类名,将其还原到其原本的位置。
    下面是示例代码:

HTML:

<div id="app">
  <div class="header"></div>
  <div class="middle"></div>
  <div class="footer"></div>
</div>

CSS:

.middle {
  position: relative;
}

.middle.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

JavaScript:


const middleComponent = document.querySelector('.middle');

window.addEventListener('scroll', () => {
  if (middleComponent.getBoundingClientRect().top <= 0) {
    middleComponent.classList.add('fixed');
  } else {
    middleComponent.classList.remove('fixed');
  }
});

此代码会检查中间组件的位置是否小于或等于页面滚动条的位置。如果是,则为中间组件添加一个 fixed 类名,如果不是,则从中间组件中删除该类名以将其还原到原本的位置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值