2016-03-30 4 views
0

Die Frage ist einfach, aber ich bin nicht in der Lage, ein Skript für mich zu machen, was ich brauche ... Ich benutze tatsächlich ein Skript (fullpage.js) wer schalte einige Klassen in einen Container um (in meinem Fall wechsle ich von fp-viewing-1 zu fp-viewing-x), wenn du zwischen den Abschnitten nach unten/oben scrollst. Ich muss ein Skript erstellen, das von diesem Container hört und eine neue Klasse in ein div umschaltet, NUR wenn eine Klasse (in meinem Fall fp-viewing-3) zu diesem Container hinzugefügt wird (natürlich aus dem Skript fullpage.js).Anpassen von fullpage.js, um Abschnitte dynamisch zu überspringen

Jeder Weg, es zu machen?

Antwort

0

Dies ist die Lösung für mein Problem. Fullpage funktioniert wie vorgesehen mit Ausnahme von Abschnitt 2. Abschnitt 2 kann nur scrollen verwendet werden, das Skript ignoriert es beim Scrollen nach oben.

$(document).ready(function() { 

    $('#application').fullpage({ 

    onLeave: function(index, nextIndex, direction){ 
     var destinationToIgnore = $('.fp-section').hasClass('ignore'); 

     if(destinationToIgnore && direction =='up'){ 
      var destination = nextIndex = 1 
      $.fn.fullpage.moveTo(destination); 

     } 
    }, 


    afterLoad: function(anchorLink, index){ 
     var loadedSection = $(this); 

     if(index !== 1){ 
     $('.section-intro').removeClass('ignore');    
     } 
     if(index == 3){ 
     $('.section-intro').addClass('ignore');    
     } 

    } 

    }); 


}); 
0

Ich brauche ein Skript zu machen, die

aus diesem Behälter hören, die nicht der richtige Weg ist für ihn zu gehen.

Wenn Sie die Statusklasse verwenden möchten, erstellen Sie einfach eine neue Klasse basierend auf den vorherigen wie erläutert in this fullpage.js tutorial.

Erstellen Sie eine bedingte CSS-Klasse, die nur angewendet wird, wenn ihre Elternklasse Ihrer Anforderung entspricht.

So etwas wie dies, zum Beispiel, würde die red Farbe Element mit myClass nur gelten, wenn Sie in Abschnitt 1 Folie 0.

.fp-viewing-1-0 .myClass{ 
    color: red; 
} 

Having sind:

<div id="fullpage"> 
    <div class="section"></div> 
    <div class="section myClass"></div> 
    <div class="section"></div> 
<div> 

Wenn für einige anderen Grund (Verwendung von Plugins etc) müssen Sie wirklich die Klasse dynamisch hinzufügen, dann gehen Sie für Fullpage.js Callbacks onLeave oder afterLoad:

$('#fullpage').fullpage({ 
    onLeave: function(index, nextIndex, direction){ 
     var destination = $('.section').eq(nextIndex - 1); 
     destination.find('.my-element').addClass('myClass');    
    } 
}); 
+0

das Skript (ich bearbeitet ersten Beitrag) funktioniert, aber nicht wie vorgesehen. Wenn ich von Index-3 nach oben scrolle, muss ich die Scroll-Aktion immer öfter wiederholen, damit es funktioniert. Weißt du, warum ? –

+0

Ich habe schon deine Frage beantwortet. Wenn Sie ein anderes Problem haben, sollten Sie eine andere Frage stellen. – Alvaro

+0

? das Plugin funktioniert nicht wie vorgesehen mit meinem Skript ... es entfernt/fügt korrekt die Klasse .ignore und auf die gleiche Weise überspringt die .ignore Abschnitt, aber beim Scrollen von dem Abschnitt neben dem ignorierten es tut es einfach nicht Es funktioniert nicht, es scrollt nicht nach oben (tatsächlich tut es aber nach 10-20 Versuchen). Soll ich ein Video von meinem Problem machen? Ich weiß nicht, ob es klar genug ist: \ –

Verwandte Themen