in js/reveal.js [1738:1825]
function updateSlidesVisibility() {
// Select all slides and convert the NodeList result to
// an array
let horizontalSlides = getHorizontalSlides(),
horizontalSlidesLength = horizontalSlides.length,
distanceX,
distanceY;
if( horizontalSlidesLength && typeof indexh !== 'undefined' ) {
// The number of steps away from the present slide that will
// be visible
let viewDistance = overview.isActive() ? 10 : config.viewDistance;
// Shorten the view distance on devices that typically have
// less resources
if( Device.isMobile ) {
viewDistance = overview.isActive() ? 6 : config.mobileViewDistance;
}
// All slides need to be visible when exporting to PDF
if( print.isPrintingPDF() ) {
viewDistance = Number.MAX_VALUE;
}
for( let x = 0; x < horizontalSlidesLength; x++ ) {
let horizontalSlide = horizontalSlides[x];
let verticalSlides = Util.queryAll( horizontalSlide, 'section' ),
verticalSlidesLength = verticalSlides.length;
// Determine how far away this slide is from the present
distanceX = Math.abs( ( indexh || 0 ) - x ) || 0;
// If the presentation is looped, distance should measure
// 1 between the first and last slides
if( config.loop ) {
distanceX = Math.abs( ( ( indexh || 0 ) - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;
}
// Show the horizontal slide if it's within the view distance
if( distanceX < viewDistance ) {
slideContent.load( horizontalSlide );
}
else {
slideContent.unload( horizontalSlide );
}
if( verticalSlidesLength ) {
let oy = getPreviousVerticalIndex( horizontalSlide );
for( let y = 0; y < verticalSlidesLength; y++ ) {
let verticalSlide = verticalSlides[y];
distanceY = x === ( indexh || 0 ) ? Math.abs( ( indexv || 0 ) - y ) : Math.abs( y - oy );
if( distanceX + distanceY < viewDistance ) {
slideContent.load( verticalSlide );
}
else {
slideContent.unload( verticalSlide );
}
}
}
}
// Flag if there are ANY vertical slides, anywhere in the deck
if( hasVerticalSlides() ) {
dom.wrapper.classList.add( 'has-vertical-slides' );
}
else {
dom.wrapper.classList.remove( 'has-vertical-slides' );
}
// Flag if there are ANY horizontal slides, anywhere in the deck
if( hasHorizontalSlides() ) {
dom.wrapper.classList.add( 'has-horizontal-slides' );
}
else {
dom.wrapper.classList.remove( 'has-horizontal-slides' );
}
}
}