2015-04-17 12 views
9

Ich verwende fullPage.js, um eine volle Breite und Höhe Schieberegler für mehrere Vollbild-Folien erstellen. Also meine Website-Struktur ist wieVolle Höhe Schieberegler überspringen eine Folie

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

I section#f03.scrollfix überspringen wollen, während sie durch die Website zu scrollen. Beim Scrollen mit meiner Tastatur und/oder mit meinem Mausrad.

+0

Sie über Konzepte sprechen, die nicht allgemein 'frame' verstanden werden,' zweiten LAYER', 'ersten LAYER' ... Nicht einfach, es zu folgen. Sie müssten angeben, was Sie damit meinen. – Alvaro

+0

Danke für den Vorschlag @Alvaro. Ich habe versucht, es auf "Inhalte" und "Folie" zu reduzieren, die anscheinend üblich sind. –

+0

* 'Während der zweite Inhalt aktiviert ist, möchte ich die Folie Nummer 8 überspringen * was? –

Antwort

5

Demo online

Wenn Sie es auf Last entfernen möchten, verwenden Sie dann den afterRender Rückruf als ich hier mache:

$('#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'); 
} 

Falls Sie es zu einem anderen Zeitpunkt verwenden möchten, nur Rufen Sie die Funktion removeSection2 wann immer Sie wollen.

Wenn Sie wollen, dass es irgendwann wieder herzustellen zurück, könnten Sie diese andere Funktion:

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

Dies scheint eine sehr saubere Lösung zu sein! Vielen Dank für Ihren tollen Vorschlag! Es ist irgendwie komisch, aber bis 'restoreSection2' kann ich nicht mit meiner Tastatur navigieren. Das ist kein Problem, oder? –

+0

@MarianRick Ich kann vertikal mit der Tastatur ohne Probleme scrollen. Wenn Sie über das horizontale Scrollen oder das Klicken auf die Dias sprechen, liegt das daran, dass sich diese Dias auf dem entfernten Abschnitt befinden und nicht auf dem ersten. Ich habe vergessen, die 'position: relative' zu ​​den Abschnitten hinzuzufügen, nachdem wir jetzt die' fp-section' Klasse entfernt haben. [Hier ist die Korrektur der Geige] (http://jsfiddle.net/97tbk/547/), beachten Sie den neuen CSS-Stil für die '.section'. – Alvaro

+0

Es tut mir so leid. Natürlich war es ein Problem. Sie müssen zuerst in den Bereich klicken, damit die Tastatur funktioniert. Dieses Problem existiert nicht, wenn Sie eine echte Webseite benutzen! –

3

Ich bin nicht sicher, ich habe, was Sie erreichen wollen, so ist dies, wie ich wähle zu interpretieren, was Sie in Ihrer Frage schrieben:

Im anschaulichen Beispiel, dass Sie zur Verfügung gestellt, ist es möglich, die klicken auf jeder Folie, um diese Folie zu öffnen. Wenn dies geschehen ist, möchten Sie, dass Folie 8 übersprungen wird, wenn der Benutzer auf die Navigationstasten auf der Seite klickt oder die Bildlauftaste verwendet.

Wenn dies der Fall ist, macht das Hinzufügen des folgenden Listeners für onLeave einer Folie in Kombination mit der CSS im unteren Teil die Folie # 8 immer dann aus, wenn die Klasse ".scrollfix" vorhanden ist (vielleicht sollte sie umbenannt werden) „.scrollskip“ oder etwas ähnliches):

$("#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); 
} }) 

die CSS muss aktualisiert werden, um die Folie zu verstecken vollständig und nicht nur macht es unsichtbar:

.scrollfix { 
    display: none!important; 
} 

Einfügen des JS-Code oben in dev Tools Konsole während Sie auf Ihrer Beispielseite sind und th machen bei kleinen Änderungen an der Scrollfix führt zu dem Verhalten, das ich denke, Sie suchen. Da Sie bereits einen "onLeave" -Ereignislistener in Ihrem Code haben, wird durch das Hinzufügen dieses Fixes in den Entwicklungstools das Standardverhalten gebrochen, aber Sie sollten den Code an der richtigen Stelle hinzufügen können, damit beide gleichzeitig funktionieren.

+0

Hey @johanpersson, vielen Dank für Ihren tollen Vorschlag. Ich habe diesen Fix schon ausprobiert. In einer Hinsicht funktioniert es großartig, aber sobald du auf der letzten Folie bist und versuchst, es "aufzumachen", bleibt das System stecken. Es ist einfacher für Sie zu versuchen, als für mich zu erklären. Ich habe den Code hier aktualisiert: http://img.hiamovi-client.com/index-stack.html Es bricht zwar, während Sie auf der letzten Folie sind und versuchen, die Folie wieder "zu schließen". –

+0

Ich sehe ..., dieses Problem zu lösen, fügen Sie die folgende Zeile in den „second_layer“ -Funktion: $ („# blattgr“) fullpage.reBuild() dass der Schieber wieder aufbauen wird, die für das Konto. Tatsache, dass Folie 8 jetzt nicht mehr gezeigt wird. Was sonst passiert, ist, dass das "Ganzseitenfenster" denkt, dass insgesamt 9 Folien vorhanden sind und sich deshalb neun Dias absenken, obwohl es eigentlich nur acht Stück abwärts sein sollte. Mit dem Aufruf von reBuild wird das behoben. –

+0

Vielen Dank @Johanpersson, das funktioniert gut und als eine gute Idee, einfach in meine Website integriert werden. Ich werde versuchen, einige Korrekturen hinzuzufügen und Ihnen dann Feedback geben! Danke auch für deine Erklärung! –