only carry forward fragment visibiltiy if style remains unchanged

This commit is contained in:
Hakim El Hattab 2020-03-19 16:27:42 +01:00
parent 4d1cb43faf
commit 34ab7ded55
3 changed files with 17 additions and 4 deletions

2
dist/reveal.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,5 @@
import { queryAll, extend, createStyleSheet } from '../utils/util.js' import { queryAll, extend, createStyleSheet } from '../utils/util.js'
import { FRAGMENT_STYLE_REGEX } from '../utils/constants.js'
/** /**
* Automatically animates matching elements across * Automatically animates matching elements across
@ -168,8 +169,17 @@ export default class AutoAnimate {
// conflicts with fragment animations // conflicts with fragment animations
delete toProps.styles['opacity']; delete toProps.styles['opacity'];
if( from.classList.contains( 'fragment' ) && animationOptions.slideDirection === 'forward' ) { if( from.classList.contains( 'fragment' ) ) {
to.classList.add( 'visible', 'disabled' );
let fromFragmentStyle = ( from.className.match( FRAGMENT_STYLE_REGEX ) || [''] )[0];
let toFragmentStyle = ( to.className.match( FRAGMENT_STYLE_REGEX ) || [''] )[0];
// Only skip the fragment if the fragment animation style
// remains unchanged
if( fromFragmentStyle === toFragmentStyle && animationOptions.slideDirection === 'forward' ) {
to.classList.add( 'visible', 'disabled' );
}
} }
} }

View File

@ -5,3 +5,6 @@ export const VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section';
// Methods that may not be invoked via the postMessage API // Methods that may not be invoked via the postMessage API
export const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/; export const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;
// Regex for retrieving the fragment style from a class attribute
export const FRAGMENT_STYLE_REGEX = /fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;