update logic for disabling fragments via config option

master
Hakim El Hattab 2020-03-12 19:11:19 +01:00
parent bff9bfb101
commit 4f280f77b0
2 changed files with 23 additions and 7 deletions

View File

@ -14,10 +14,10 @@ export default class Fragments {
}
/**
* Shows all fragments in the presentation. Used when
* fragments are disabled presentation-wide.
* If fragments are disabled in the deck, they should all be
* visible rather than stepped through.
*/
showAll() {
disable() {
toArray( this.Reveal.getSlidesElement().querySelectorAll( '.fragment' ) ).forEach( element => {
element.classList.add( 'visible' );
@ -26,6 +26,19 @@ export default class Fragments {
}
/**
* Reverse of #disable(). Only called if fragments have
* previously been disabled.
*/
enable() {
toArray( this.Reveal.getSlidesElement().querySelectorAll( '.fragment' ) ).forEach( element => {
element.classList.remove( 'visible' );
element.classList.remove( 'current-fragment' );
} );
}
/**
* Returns an object describing the available fragment
* directions.

View File

@ -787,7 +787,7 @@ export default function( revealElement, options ) {
*/
function configure( options ) {
const oldTransition = config.transition;
const oldConfig = { ...config }
// New config options may be passed when this method
// is invoked through the API after initialization
@ -800,7 +800,7 @@ export default function( revealElement, options ) {
const numberOfSlides = dom.wrapper.querySelectorAll( SLIDES_SELECTOR ).length;
// The transition is added as a class on the .reveal element
dom.wrapper.classList.remove( oldTransition );
dom.wrapper.classList.remove( oldConfig.transition );
dom.wrapper.classList.add( config.transition );
dom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );
@ -889,9 +889,12 @@ export default function( revealElement, options ) {
autoSlidePaused = false;
}
// When fragments are turned off they should be visible
// Update the state of our fragments
if( config.fragments === false ) {
fragments.showAll();
fragments.disable();
}
else if( oldConfig.fragments === false ) {
fragments.enable();
}
// Add the navigation mode to the DOM so we can adjust styling