MCPcopy
hub / github.com/hakimel/reveal.js / createFragmentTriggersForPage

Method createFragmentTriggersForPage

js/controllers/scrollview.js:463–497  ·  view source on GitHub ↗

* Creates one scroll trigger for each fragments in the given page. * * @param {*} page

( page, slideElement )

Source from the content-addressed store, hash-verified

461 * @param {*} page
462 */
463 createFragmentTriggersForPage( page, slideElement ) {
464
465 slideElement = slideElement || page.slideElement;
466
467 // Each fragment 'group' is an array containing one or more
468 // fragments. Multiple fragments that appear at the same time
469 // are part of the same group.
470 const fragmentGroups = this.Reveal.fragments.sort( slideElement.querySelectorAll( '.fragment' ), true );
471
472 // Create scroll triggers that show/hide fragments
473 if( fragmentGroups.length ) {
474 page.fragments = this.Reveal.fragments.sort( slideElement.querySelectorAll( '.fragment:not(.disabled)' ) );
475 page.scrollTriggers.push(
476 // Trigger for the initial state with no fragments visible
477 {
478 activate: () => {
479 this.Reveal.fragments.update( -1, page.fragments, slideElement );
480 }
481 }
482 );
483
484 // Triggers for each fragment group
485 fragmentGroups.forEach( ( fragments, i ) => {
486 page.scrollTriggers.push({
487 activate: () => {
488 this.Reveal.fragments.update( i, page.fragments, slideElement );
489 }
490 });
491 } );
492 }
493
494
495 return page.scrollTriggers.length;
496
497 }
498
499 /**
500 * Creates scroll triggers for the auto-animate steps in the

Callers 2

syncPagesMethod · 0.95

Calls 2

sortMethod · 0.80
updateMethod · 0.45

Tested by

no test coverage detected