Skip to content

Commit 46183f7

Browse files
committed
add leftRightSkipFragments config
1 parent 15815ef commit 46183f7

File tree

7 files changed

+35
-8
lines changed

7 files changed

+35
-8
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ log/*.log
99
tmp/**
1010
node_modules/
1111
.sass-cache
12-
dist/*.map
12+
dist/*.map
13+
.vscode/

dist/reveal.esm.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/reveal.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/config.js

+4
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ export default {
122122
// from 1.3 -> 2.3.
123123
navigationMode: 'default',
124124

125+
// Make left/right arrow keys skip current slide's fragment
126+
// and move directly to previous/next slide
127+
leftRightSkipFragments: false,
128+
125129
// Randomizes the order of slides each time the presentation loads
126130
shuffle: false,
127131

js/reveal.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -2157,12 +2157,12 @@ export default function( revealElement, options ) {
21572157

21582158
// Reverse for RTL
21592159
if( config.rtl ) {
2160-
if( ( overview.isActive() || fragments.next() === false ) && availableRoutes().left ) {
2160+
if( ( overview.isActive() || config.leftRightSkipFragments || fragments.next() === false ) && availableRoutes().left ) {
21612161
slide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );
21622162
}
21632163
}
21642164
// Normal navigation
2165-
else if( ( overview.isActive() || fragments.prev() === false ) && availableRoutes().left ) {
2165+
else if( ( overview.isActive() || config.leftRightSkipFragments || fragments.prev() === false ) && availableRoutes().left ) {
21662166
slide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );
21672167
}
21682168

@@ -2174,12 +2174,12 @@ export default function( revealElement, options ) {
21742174

21752175
// Reverse for RTL
21762176
if( config.rtl ) {
2177-
if( ( overview.isActive() || fragments.prev() === false ) && availableRoutes().right ) {
2177+
if( ( overview.isActive() || config.leftRightSkipFragments || fragments.prev() === false ) && availableRoutes().right ) {
21782178
slide( indexh - 1, config.navigationMode === 'grid' ? indexv : undefined );
21792179
}
21802180
}
21812181
// Normal navigation
2182-
else if( ( overview.isActive() || fragments.next() === false ) && availableRoutes().right ) {
2182+
else if( ( overview.isActive() || config.leftRightSkipFragments || fragments.next() === false ) && availableRoutes().right ) {
21832183
slide( indexh + 1, config.navigationMode === 'grid' ? indexv : undefined );
21842184
}
21852185

package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/test.html

+22
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,28 @@ <h1>4</h1>
505505
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
506506
});
507507

508+
QUnit.test( 'Skipping fragments', function( assert ) {
509+
Reveal.configure({ leftRightSkipFragments: true });
510+
511+
// forwards:
512+
513+
Reveal.slide( 2, 0, -1 );
514+
515+
Reveal.right();
516+
assert.deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined }, 'when leftRightSkipFragments is set, right() goes to next slide' );
517+
518+
// backwards:
519+
520+
Reveal.left(); // return to previous slide
521+
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'left() goes to prev fragment' );
522+
523+
Reveal.left();
524+
assert.deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined }, 'when leftRightSkipFragments is set, left() goes to prev slide' );
525+
526+
Reveal.configure({ leftRightSkipFragments: false });
527+
});
528+
529+
508530
QUnit.test( 'Stepping past fragments', function( assert ) {
509531
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
510532

0 commit comments

Comments
 (0)