mirror of
https://github.com/hakimel/reveal.js.git
synced 2025-08-08 07:36:39 +02:00
fix fragment events not firing in scroll view + add tests #3580
This commit is contained in:
2
dist/reveal.esm.js
vendored
2
dist/reveal.esm.js
vendored
File diff suppressed because one or more lines are too long
2
dist/reveal.esm.js.map
vendored
2
dist/reveal.esm.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/reveal.js
vendored
2
dist/reveal.js
vendored
File diff suppressed because one or more lines are too long
2
dist/reveal.js.map
vendored
2
dist/reveal.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -257,6 +257,26 @@ export default class Fragments {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( changedFragments.hidden.length ) {
|
||||||
|
this.Reveal.dispatchEvent({
|
||||||
|
type: 'fragmenthidden',
|
||||||
|
data: {
|
||||||
|
fragment: changedFragments.hidden[0],
|
||||||
|
fragments: changedFragments.hidden
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if( changedFragments.shown.length ) {
|
||||||
|
this.Reveal.dispatchEvent({
|
||||||
|
type: 'fragmentshown',
|
||||||
|
data: {
|
||||||
|
fragment: changedFragments.shown[0],
|
||||||
|
fragments: changedFragments.shown
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return changedFragments;
|
return changedFragments;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -311,26 +331,6 @@ export default class Fragments {
|
|||||||
|
|
||||||
let changedFragments = this.update( index, fragments );
|
let changedFragments = this.update( index, fragments );
|
||||||
|
|
||||||
if( changedFragments.hidden.length ) {
|
|
||||||
this.Reveal.dispatchEvent({
|
|
||||||
type: 'fragmenthidden',
|
|
||||||
data: {
|
|
||||||
fragment: changedFragments.hidden[0],
|
|
||||||
fragments: changedFragments.hidden
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if( changedFragments.shown.length ) {
|
|
||||||
this.Reveal.dispatchEvent({
|
|
||||||
type: 'fragmentshown',
|
|
||||||
data: {
|
|
||||||
fragment: changedFragments.shown[0],
|
|
||||||
fragments: changedFragments.shown
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.Reveal.controls.update();
|
this.Reveal.controls.update();
|
||||||
this.Reveal.progress.update();
|
this.Reveal.progress.update();
|
||||||
|
|
||||||
|
@@ -108,6 +108,53 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QUnit.test( 'Fires fragmentshown event when scrolling', assert => {
|
||||||
|
assert.timeout( 200 );
|
||||||
|
assert.expect( 2 );
|
||||||
|
|
||||||
|
const slides = document.querySelectorAll( '.reveal .slides section' );
|
||||||
|
|
||||||
|
return new Promise( resolve => {
|
||||||
|
let callback = ( event ) => {
|
||||||
|
Reveal.off( 'fragmentshown', callback );
|
||||||
|
assert.ok( true, 'fragmentshown event fired' );
|
||||||
|
assert.ok( event.fragments.length > 0, 'fragmentshown provides reference to fragment nodes' );
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
Reveal.on( 'fragmentshown', callback );
|
||||||
|
|
||||||
|
Reveal.getViewportElement().scrollTop = 0;
|
||||||
|
Reveal.next();
|
||||||
|
Reveal.next();
|
||||||
|
Reveal.getViewportElement().scrollTop += getViewportHeight();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test( 'Fires fragmenthidden event when scrolling', assert => {
|
||||||
|
assert.timeout( 200 );
|
||||||
|
assert.expect( 2 );
|
||||||
|
|
||||||
|
const slides = document.querySelectorAll( '.reveal .slides section' );
|
||||||
|
|
||||||
|
return new Promise( resolve => {
|
||||||
|
let callback = ( event ) => {
|
||||||
|
Reveal.off( 'fragmenthidden', callback );
|
||||||
|
assert.ok( true, 'fragmenthidden event fired' );
|
||||||
|
assert.ok( event.fragments.length > 0, 'fragmenthidden provides reference to fragment nodes' );
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
Reveal.on( 'fragmenthidden', callback );
|
||||||
|
|
||||||
|
Reveal.getViewportElement().scrollTop = 0;
|
||||||
|
Reveal.next();
|
||||||
|
Reveal.next();
|
||||||
|
Reveal.next();
|
||||||
|
Reveal.getViewportElement().scrollTop -= getViewportHeight();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
} );
|
} );
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user