2015-04-17 122 views
9

我正在使用fullPage.js为多个全屏幻灯片创建全宽度和高度滑块。所以我的网站结构就像全高度滑块跳过一张幻灯片

section#f01 
section#f02 
section#f03.scrollfix 
section#f04 

我想跳过section#f03.scrollfix滚动浏览网站。用我的键盘和/或鼠标滚轮滚动。

+0

请您谈一下概念不是通常理解'frame','第二layer','第一layer' ...不容易遵循它。你必须指定你的意思。 – Alvaro

+0

感谢@Alvaro的建议。我试图只使用“内容”和“幻灯片”,这似乎很常见。 –

+0

*'第二个内容被激活时,我想跳过第8张幻灯片* *什么? –

回答

5

Demo online

如果你想删除它的负载,然后使用afterRender回调,因为我在这里做什么:

$('#fullpage').fullpage({ 
    sectionsColor: ['yellow', 'orange', '#C0C0C0', '#ADD8E6'], 

    afterRender: function() { 
     removeSection2(); 
    } 
}); 

function removeSection2() { 
    // Move section 2 after the las section 
    $('.fp-section:last').after($('#f02')); 

    //removing the internal class `fp-section` so fullPage.js won't recognise it and won't be able to scroll to it. 
    $('#f02').removeClass('fp-section'); 
} 

如果你想在其他任何时刻使用它,只是随时调用功能removeSection2

如果你想在某个时候将它还原回来,你可以使用这个其它功能:

function restoreSection2() { 
    // Move all next sections to before the active section 
    $('#f01').after($('#f02')); 
    $('#f02').addClass('fp-section'); 
} 
+0

这似乎是一个非常干净的解决方案!非常感谢您的伟大建议! 它的一种奇怪,但直到'restoreSection2'我无法使用我的键盘导航。这不是一个jsfiddle问题,是吗? –

+0

@MarianRick我可以用键盘垂直滚动,没有任何问题。 如果您正在谈论水平滚动或幻灯片的点击,那是因为这些幻灯片位于已移除的部分,而不是第一个幻灯片。我忘了将'position:relative'添加到部分,现在我们移除了包含它的'fp-section'类。 [这是小提琴的修正](http://jsfiddle.net/97tbk/547/),注意'.section'的新CSS样式。 – Alvaro

+0

我很抱歉。当然这是一个疯狂的问题。您需要先在该区域内单击以使键盘正常工作。使用真实网站时不存在此问题! –

3

我不知道我得到了你想要达到的目标,所以这是我该如何选择来解释你在你的问题中写道:

在您提供的活生生的例子,可以点击每个幻灯片上的按钮“打开”幻灯片。完成后,只要用户点击页面上的导航按钮或正在使用滚动按钮,就希望跳过幻灯片#8。

如果是这种情况,那么在下面的侦听器中添加一个幻灯片的onLeave和底部的css结合使得每当类“.scrollfix”出现时跳过幻灯片#8(也许它应该被重命名为“.scrollskip”或类似的东西):

$("#fullpage").fullpage({ onLeave: function(index, nextIndex, direction) { 
    setTimeout(function() { 
    var skip_section = $(".scrollfix").length > 0; 
    if (nextIndex === 8 && skip_section) { 
     if (direction === "down") { 
     $("#fullpage").fullpage.moveSectionDown(); 
     } else { 
     $("#fullpage").fullpage.moveSectionUp(); 
     } 
    } 
    },1); 
} }) 

的CSS需要进行更新,以隐藏幻灯片完全而不只是使其不可见的:

.scrollfix { 
    display: none!important; 
} 

粘贴JS代码到上面开发工具控制台同时在您的示例页面上制作在scrollfix的小改动导致我认为你寻求的行为。由于您的代码中已经有了“onLeave”事件侦听器,因此在开发工具中添加此修补程序将会破坏默认行为,但您应该能够在正确的位置添加代码以使它们同时工作。

+0

嘿@johanpersson,非常感谢您的伟大建议。我已经尝试了此修复程序。从某种意义上说,它的效果很好,但是尽快,当你在最后一张幻灯片上并尝试“打开它”时,系统就会陷入困境。它更容易让你尝试,而不是我解释。我在这里更新了代码:http://img.hiamovi-client.com/index-stack。html 它虽然在最后一张幻灯片中断开,并尝试再次“关闭”幻灯片。 –

+0

我看到...要解决这个问题,请在你的“second_layer”函数中加入以下代码行: $(“#fullpage”)。fullpage.reBuild() 这将重建幻灯片,事实上,幻灯片8现在不再显示。否则会发生的事情是,“整页窗口”认为总共有9张幻灯片,并且由于该位置本身九个幻灯片向下,实际上它应该只有八个拼接窗口。调用reBuild将解决这个问题。 –

+0

非常感谢@johanpersson,这个作品很棒,作为一个好主意,很容易整合到我的网站中。我会尝试添加一些修复,然后给你反馈!感谢您的解释! –