Merge branch 'sort_fragments' of https://github.com/jaberg/reveal.js into dev
This commit is contained in:
commit
25f26bdc15
32
js/reveal.js
32
js/reveal.js
|
@ -142,6 +142,31 @@ var Reveal = (function(){
|
||||||
threshold: 80
|
threshold: 80
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a sorted fragments list, ordered by an increasing "fragment-pos" attribute.
|
||||||
|
*
|
||||||
|
* Fragments will be revealed in the order that they are returned by
|
||||||
|
* this function, so you can use "fragment-pos" attributes to control
|
||||||
|
* the order of fragment appearance.
|
||||||
|
*
|
||||||
|
* To maintain a sensible default fragment order, fragments are presumed
|
||||||
|
* to be passed in document order. This function adds a "fragment-pos"
|
||||||
|
* attribute to each node if such an attribute is not already present,
|
||||||
|
* and sets that attribute to an integer value which is the position of
|
||||||
|
* the fragment within the fragments list.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function sort_fragments( fragments ) {
|
||||||
|
var a = toArray(fragments)
|
||||||
|
a.forEach( function (el, idx) {
|
||||||
|
if (!el.hasAttribute('fragment-pos')) {
|
||||||
|
el.setAttribute('fragment-pos', idx) }})
|
||||||
|
a.sort(function(l, r) {
|
||||||
|
return l.getAttribute( 'fragment-pos' )
|
||||||
|
- r.getAttribute( 'fragment-pos') })
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts up the presentation if the client is capable.
|
* Starts up the presentation if the client is capable.
|
||||||
*/
|
*/
|
||||||
|
@ -1022,6 +1047,7 @@ var Reveal = (function(){
|
||||||
// Show fragment, if specified
|
// Show fragment, if specified
|
||||||
if( typeof f !== 'undefined' ) {
|
if( typeof f !== 'undefined' ) {
|
||||||
var fragments = currentSlide.querySelectorAll( '.fragment' );
|
var fragments = currentSlide.querySelectorAll( '.fragment' );
|
||||||
|
fragments = sort_fragments(fragments)
|
||||||
|
|
||||||
toArray( fragments ).forEach( function( fragment, indexf ) {
|
toArray( fragments ).forEach( function( fragment, indexf ) {
|
||||||
if( indexf < f ) {
|
if( indexf < f ) {
|
||||||
|
@ -1393,6 +1419,7 @@ var Reveal = (function(){
|
||||||
// Vertical slides:
|
// Vertical slides:
|
||||||
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
||||||
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
||||||
|
verticalFragments = sort_fragments(verticalFragments)
|
||||||
if( verticalFragments.length ) {
|
if( verticalFragments.length ) {
|
||||||
verticalFragments[0].classList.add( 'visible' );
|
verticalFragments[0].classList.add( 'visible' );
|
||||||
|
|
||||||
|
@ -1404,6 +1431,7 @@ var Reveal = (function(){
|
||||||
// Horizontal slides:
|
// Horizontal slides:
|
||||||
else {
|
else {
|
||||||
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
|
||||||
|
horizontalFragments = sort_fragments(horizontalFragments)
|
||||||
if( horizontalFragments.length ) {
|
if( horizontalFragments.length ) {
|
||||||
horizontalFragments[0].classList.add( 'visible' );
|
horizontalFragments[0].classList.add( 'visible' );
|
||||||
|
|
||||||
|
@ -1428,6 +1456,7 @@ var Reveal = (function(){
|
||||||
// Vertical slides:
|
// Vertical slides:
|
||||||
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
|
||||||
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
||||||
|
verticalFragments = sort_fragments(verticalFragments)
|
||||||
if( verticalFragments.length ) {
|
if( verticalFragments.length ) {
|
||||||
verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
|
verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
|
||||||
|
|
||||||
|
@ -1439,6 +1468,7 @@ var Reveal = (function(){
|
||||||
// Horizontal slides:
|
// Horizontal slides:
|
||||||
else {
|
else {
|
||||||
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
|
||||||
|
horizontalFragments = sort_fragments(horizontalFragments)
|
||||||
if( horizontalFragments.length ) {
|
if( horizontalFragments.length ) {
|
||||||
horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
|
horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
|
||||||
|
|
||||||
|
@ -1949,4 +1979,4 @@ var Reveal = (function(){
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user