* Creates one scroll trigger for each fragments in the given page. * * @param {*} page
( page, slideElement )
| 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 |
no test coverage detected