aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2020-03-12 19:11:19 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2020-03-12 19:11:19 +0100
commit4f280f77b06418812aed7e8cae60396b04fce733 (patch)
treec7b574b2ab45136a44cdb013d5e70d1d3bcc1346
parentbff9bfb101763ed960cb8e5de7152da8d366f2af (diff)
downloadfosdem-2021-minimalism-presentation-4f280f77b06418812aed7e8cae60396b04fce733.tar
fosdem-2021-minimalism-presentation-4f280f77b06418812aed7e8cae60396b04fce733.tar.gz
update logic for disabling fragments via config option
-rw-r--r--js/controllers/fragments.js19
-rw-r--r--js/reveal.js11
2 files changed, 23 insertions, 7 deletions
diff --git a/js/controllers/fragments.js b/js/controllers/fragments.js
index 01db85f..ff5b677 100644
--- a/js/controllers/fragments.js
+++ b/js/controllers/fragments.js
@@ -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' );
@@ -27,6 +27,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.
*
diff --git a/js/reveal.js b/js/reveal.js
index 2ece961..1768521 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -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