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

如何在特定Section禁用FullPage.js的滚动功能?

解决fullpage.js滚动到指定Section后恢复正常页面滚动的方法

嘿,我刚好折腾过类似的需求!fullpage.js官方文档里确实没把这个场景做成现成的API,但咱们可以通过它的回调函数+核心方法组合实现,步骤很清晰:

核心思路

当用户滚动到第二个Section时,关闭fullpage.js的自动滚动、键盘控制等拦截行为,把滚动控制权交还给浏览器。

具体实现代码

首先在初始化fullpage的时候,配置afterLoad回调来监听滚动到目标Section的事件,然后调用对应的禁用方法:

$(document).ready(function() {
    $('#fullpage').fullpage({
        // 这里放你的其他配置,比如sectionsColor、navigation之类的
        afterLoad: function(origin, destination, direction) {
            // 注意:fullpage的destination.index是从0开始计数的,第二个Section对应index=1
            if (destination.index === 1) {
                // 关闭自动滚动,交回滚动控制权
                $.fn.fullpage.setAutoScrolling(false);
                // 关闭键盘滚动控制(如果不需要可以省略)
                $.fn.fullpage.setKeyboardScrolling(false);
                // 关闭强制贴合Section的行为,让页面自由滚动
                $.fn.fullpage.setFitToSection(false);
            }
        },
        // 可选:如果需要回到第一个Section时恢复fullpage控制,加上这个回调
        onLeave: function(origin, destination, direction) {
            // 从第二个Section回到第一个时恢复设置
            if (origin.index === 1 && destination.index === 0) {
                $.fn.fullpage.setAutoScrolling(true);
                $.fn.fullpage.setKeyboardScrolling(true);
                $.fn.fullpage.setFitToSection(true);
            }
        }
    });
});

关键方法说明

  • setAutoScrolling(false):这是核心,关闭fullpage的自动滚动逻辑,它会停止监听浏览器的滚动事件,不再强制切换Section。
  • setFitToSection(false):让页面不再强制将每个Section对齐到视口顶部,确保后续内容可以正常滚动显示。
  • setKeyboardScrolling(false):如果你的项目用到了键盘上下键控制滚动,这个方法可以关闭fullpage对键盘事件的拦截。

这样设置后,用户滚动到第二个Section之后,就能像普通页面一样自由滚动啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:45:19