now capturing data-state on slides and lifting it to document element classList when slide is open
This commit is contained in:
22
js/reveal.js
22
js/reveal.js
@ -58,6 +58,11 @@ var Reveal = (function(){
|
||||
rollingLinks: true
|
||||
},
|
||||
|
||||
// Slides may hold a data-state attribute which we pick up and apply
|
||||
// as a class to the body. This list contains the combined state of
|
||||
// all current slides.
|
||||
state = [],
|
||||
|
||||
// Cached references to DOM elements
|
||||
dom = {},
|
||||
|
||||
@ -462,6 +467,13 @@ var Reveal = (function(){
|
||||
|
||||
// Mark the current slide as present
|
||||
slides[index].classList.add( 'present' );
|
||||
|
||||
// If this slide has a state associated with it, add it
|
||||
// onto the current state of the deck
|
||||
var slideState = slides[index].dataset.state;
|
||||
if( slideState ) {
|
||||
state = state.concat( slideState.split( ' ' ) );
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Since there are no slides we can't be anywhere beyond the
|
||||
@ -478,9 +490,19 @@ var Reveal = (function(){
|
||||
* set indices.
|
||||
*/
|
||||
function slide() {
|
||||
// Clean up the current state
|
||||
while( state.length ) {
|
||||
document.documentElement.classList.remove( state.pop() );
|
||||
}
|
||||
|
||||
indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, indexh );
|
||||
indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, indexv );
|
||||
|
||||
// Apply the new state
|
||||
for( var i = 0, len = state.length; i < len; i++ ) {
|
||||
document.documentElement.classList.add( state[i] );
|
||||
}
|
||||
|
||||
// Update progress if enabled
|
||||
if( config.progress ) {
|
||||
dom.progressbar.style.width = ( indexh / ( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ).length - 1 ) ) * window.innerWidth + 'px';
|
||||
|
Reference in New Issue
Block a user