additional auto-animate tests

This commit is contained in:
Hakim El Hattab 2020-02-17 10:19:47 +01:00
parent f263f2819d
commit ac59dcb525
2 changed files with 23 additions and 4 deletions

View file

@ -3866,7 +3866,6 @@
// Create a new auto-animate sheet // Create a new auto-animate sheet
autoAnimateStyleSheet = autoAnimateStyleSheet || document.createElement( 'style' ); autoAnimateStyleSheet = autoAnimateStyleSheet || document.createElement( 'style' );
autoAnimateStyleSheet.type = 'text/css'; autoAnimateStyleSheet.type = 'text/css';
autoAnimateStyleSheet.className = 'auto-animate-styes';
document.head.appendChild( autoAnimateStyleSheet ); document.head.appendChild( autoAnimateStyleSheet );
var slideOptions = getAutoAnimateOptions( toSlide, { var slideOptions = getAutoAnimateOptions( toSlide, {
@ -3904,10 +3903,12 @@
// Start the animation next cycle // Start the animation next cycle
requestAnimationFrame( function() { requestAnimationFrame( function() {
// This forces our newly injected styles to be applied in Firefox if( autoAnimateStyleSheet ) {
getComputedStyle( autoAnimateStyleSheet ).fontWeight; // This forces our newly injected styles to be applied in Firefox
getComputedStyle( autoAnimateStyleSheet ).fontWeight;
toSlide.dataset.autoAnimate = 'running'; toSlide.dataset.autoAnimate = 'running';
}
} ); } );
} }

View file

@ -52,6 +52,7 @@
const slides = Array.prototype.map.call( document.querySelectorAll( '.slides section' ), slide => { const slides = Array.prototype.map.call( document.querySelectorAll( '.slides section' ), slide => {
return { return {
slide: slide,
h1: slide.querySelector( 'h1' ), h1: slide.querySelector( 'h1' ),
h2: slide.querySelector( 'h2' ), h2: slide.querySelector( 'h2' ),
h3: slide.querySelector( 'h3' ) h3: slide.querySelector( 'h3' )
@ -102,6 +103,23 @@
slides[1].h1.addEventListener( 'transitionend', callback ); slides[1].h1.addEventListener( 'transitionend', callback );
}); });
QUnit.test( 'Does not add [data-auto-animate] on non auto-animated slides', assert => {
Reveal.slide(2);
Reveal.next();
assert.ok( slides[3].slide.hasAttribute( 'data-auto-animate' ) === false )
});
QUnit.test( 'autoAnimate config option', assert => {
Reveal.configure({ autoAnimate: false });
assert.ok( document.querySelectorAll( 'data-auto-animate-target' ).length === 0, 'Removes all [data-auto-animate-target]' )
assert.ok( Array.prototype.every.call( document.querySelectorAll( 'section[data-auto-animate]' ), el => {
return el.dataset.autoAnimate === '';
}, 'All data-auto-animate attributes are reset' ) );
Reveal.configure({ autoAnimate: true });
});
} ); } );
Reveal.initialize(); Reveal.initialize();