You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fullpage.js中第二section的footer固定至视口底部问题求助

解决方案:让fullpage.js第二section的footer固定在视口底部

没问题,这个需求完全可以实现!结合fullpage.js的回调机制和自定义CSS就能搞定,我给你详细说下步骤和代码示例:

1. 给目标footer添加专属标识

首先给第二section里的footer加一个专属类名,比如section-2-footer,方便后续精准控制样式和状态:

<div id="fullpage">
  <div class="section">第一部分内容</div>
  <div class="section">
    <div class="content">这里是第二section的长滚动内容...</div>
    <footer class="section-2-footer">我是第二section的固定footer</footer>
  </div>
  <div class="section">第三部分内容</div>
</div>

2. 编写基础CSS样式

先设置footer的默认样式,再定义固定在视口底部的类样式,同时给第二section的滚动容器添加内边距,避免内容被footer遮挡:

/* 默认状态:footer随文档流排列 */
.section-2-footer {
  position: relative;
  margin-top: auto;
  height: 60px; /* 根据你的需求设置footer高度 */
  background: #f5f5f5;
  line-height: 60px;
  text-align: center;
}

/* 固定状态:footer锁定在视口底部 */
.section-2-footer.fixed-at-bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 999; /* 确保footer在滚动内容上方 */
}

/* 给第二section的滚动容器加底部内边距,避免内容被footer挡住 */
.fp-section:nth-child(2) .fp-scrollable {
  padding-bottom: 60px; /* 值要和footer高度一致 */
}

3. 利用fullpage.js回调控制固定状态

通过fullpage的afterLoad和onLeave回调,在进入/离开第二section时切换footer的固定类:

new fullpage('#fullpage', {
  scrollOverflow: true,
  // 进入section时触发
  afterLoad: function(origin, destination, direction) {
    // 第二section的索引是1(fullpage的section索引从0开始)
    if (destination.index === 1) {
      document.querySelector('.section-2-footer').classList.add('fixed-at-bottom');
    }
  },
  // 离开section时触发
  onLeave: function(origin, destination, direction) {
    if (origin.index === 1) {
      document.querySelector('.section-2-footer').classList.remove('fixed-at-bottom');
    }
  }
});

原理说明

  • 当你滚动到第二section时,afterLoad回调会给footer添加fixed-at-bottom类,让它固定在视口底部;
  • 滚动离开第二section时,onLeave回调移除这个类,footer回到正常文档流;
  • 给滚动容器加padding-bottom是因为scrolloverflow会生成独立的滚动区域,这样长内容不会被固定的footer遮挡。

如果你的footer高度是动态的,可以用JS获取footer的实际高度后,动态设置滚动容器的padding-bottom,比如:

// 在afterLoad回调里添加
const footerHeight = document.querySelector('.section-2-footer').offsetHeight;
document.querySelector('.fp-section:nth-child(2) .fp-scrollable').style.paddingBottom = `${footerHeight}px`;

内容的提问来源于stack exchange,提问作者kreemers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:26:27