You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决fullpage.js垂直滑块遮挡网站下方其他区块的问题

嘿,我来帮你解决这个fullpage.js的问题!你遇到的情况其实是fullpage.js的默认行为加上结构错误导致的,别着急,咱们一步步来修复:

首先,你混淆了fullpage.js里sectionslide的核心概念——section是垂直滚动的页面单元,而slide是每个section内部的横向切换滑块。你现在直接把slide作为#fullpage的子元素,fullpage会把它们当成同一个section里的横向滑块,整个#fullpage容器会被强制设置为占满整个视口高度,同时fullpage还会自动修改bodyhtml的样式为overflow: hidden,这就导致你后面的home_container和footer被挤到了视口之外,而且因为overflow被隐藏,滚动也看不到它们。

接下来是具体的修复方案:

步骤1:修正HTML结构

把原来的slide类改成section,然后把你需要显示的后续内容(home_container、footer)放到fullpage的最后一个section里,并且给这个section加上fp-auto-height类——这个类是fullpage官方提供的,用来让section自适应内容高度,而不是强制占满视口。修改后的结构如下:

<div id="fullpage">
  <div class="section" id="slide_1">
    <div class="slide_caption">
      <h1>This is slide 1</h1>
      <h4>slide 1 description</h4>
      <a href="#">Read More</a>
    </div>
  </div>
  <div class="section" id="slide_2">
    <div class="slide_caption">
      <h1>This is slide 2</h1>
      <h4>slide 2 description</h4>
      <a href="#">Read More</a>
    </div>
  </div>
  <div class="section" id="slide_3">
    <div class="slide_caption">
      <h1>This is slide 3</h1>
      <h4>slide 3 description</h4>
      <a href="#">Read More</a>
    </div>
  </div>
  <div class="section" id="slide_4">
    <div class="slide_caption">
      <h1>This is slide 4</h1>
      <h4>slide 4 description</h4>
      <a href="#">Read More</a>
    </div>
  </div>
  <!-- 把后续内容放到这个自适应高度的section里 -->
  <div class="section fp-auto-height">
    <section class="full_width_container" id="home_container_1">
      <!-- 你的产品等内容 -->
    </section>
    <section class="full_width_container" id="home_container_2">
      <!-- 你的新闻等内容 -->
    </section>
    <section class="full_width_container" id="home_container_3">
      <!-- 你的评价等内容 -->
    </section>
    <section class="full_width_container" id="home_container_4">
      <!-- 你的博客链接等内容 -->
    </section>
    <footer>
      <!-- 你的页脚内容 -->
    </footer>
  </div>
</div>

步骤2:正确初始化fullpage.js

确保你的初始化代码配置了合适的选项,比如关闭横向滚动(因为你要的是垂直滑块),示例代码如下:

new fullpage('#fullpage', {
  autoScrolling: true, // 启用全屏自动滚动
  scrollHorizontally: false, // 禁用横向滚动(我们用section做垂直页面)
  // 可选:添加响应式配置,在小屏幕上禁用全屏滚动
  responsiveWidth: 768,
  responsiveBehavior: 'normal'
});

为什么之前的尝试没用?

你之前给bodyoverflow-y:scroll !important没效果,是因为fullpage.js会动态修改bodyhtml的样式,它的内联样式优先级比你写的CSS高,所以直接覆盖CSS是没用的,必须通过fullpage的配置或者官方提供的类来调整。

如果你实在不想把后续内容放到fullpage容器里,那可以设置autoScrolling: false,这样fullpage不会修改body的overflow,也不会强制占满视口,但这样就失去了全屏滚动的滑块效果,所以不推荐这种方式。

这样调整之后,你就能正常滚动浏览完四个垂直滑块后,看到后面的home_container和footer内容啦!

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

火山引擎 最新活动