make view distance configurable #527

This commit is contained in:
Hakim El Hattab 2013-08-10 13:16:45 -04:00
parent 8ad81aa1a5
commit 8e01c03824
2 changed files with 11 additions and 8 deletions

View file

@ -85,6 +85,9 @@ var Reveal = (function(){
// Transition style for full page slide backgrounds // Transition style for full page slide backgrounds
backgroundTransition: 'default', // default/linear/none backgroundTransition: 'default', // default/linear/none
// Number of slides away from the current that are visible
viewDistance: 3,
// Script dependencies to load // Script dependencies to load
dependencies: [] dependencies: []
}, },
@ -1583,15 +1586,15 @@ var Reveal = (function(){
// The number of steps away from the present slide that will // The number of steps away from the present slide that will
// be visible // be visible
var threshold = 3; var viewDistance = config.viewDistance;
// Heavily limited on weaker devices // Heavily limited on weaker devices
if( isMobileDevice ) { if( isMobileDevice ) {
threshold = 1; viewDistance = 1;
} }
if( isOverview() ) { if( isOverview() ) {
threshold = 6; viewDistance = 6;
} }
for( var x = 0; x < horizontalSlidesLength; x++ ) { for( var x = 0; x < horizontalSlidesLength; x++ ) {
@ -1614,16 +1617,16 @@ var Reveal = (function(){
distance = Math.sqrt( dx*dx + dy*dy ); distance = Math.sqrt( dx*dx + dy*dy );
verticalSlide.style.display = distance > threshold ? 'none' : 'block'; verticalSlide.style.display = distance > viewDistance ? 'none' : 'block';
} }
} }
else { else {
// Loops so that it measures 1 between the first and last slides // Loops so that it measures 1 between the first and last slides
distance = Math.abs( ( indexh - x ) % ( horizontalSlidesLength - threshold ) ) || 0; distance = Math.abs( ( indexh - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;
horizontalSlide.style.display = distance > threshold ? 'none' : 'block'; horizontalSlide.style.display = distance > viewDistance ? 'none' : 'block';
} }
} }

4
js/reveal.min.js vendored

File diff suppressed because one or more lines are too long