@@ -305,7 +305,7 @@ var Reveal = (function(){
305
305
setupDOM ( ) ;
306
306
307
307
// Decorate the slide DOM elements with state classes (past/future)
308
- setupSlides ( ) ;
308
+ formatSlides ( ) ;
309
309
310
310
// Updates the presentation to match the current configuration values
311
311
configure ( ) ;
@@ -333,30 +333,6 @@ var Reveal = (function(){
333
333
334
334
}
335
335
336
- /**
337
- * Iterates through and decorates slides DOM elements with
338
- * appropriate classes.
339
- */
340
- function setupSlides ( ) {
341
-
342
- var horizontalSlides = toArray ( document . querySelectorAll ( HORIZONTAL_SLIDES_SELECTOR ) ) ;
343
- horizontalSlides . forEach ( function ( horizontalSlide ) {
344
-
345
- var verticalSlides = toArray ( horizontalSlide . querySelectorAll ( 'section' ) ) ;
346
- verticalSlides . forEach ( function ( verticalSlide , y ) {
347
-
348
- if ( y > 0 ) verticalSlide . classList . add ( 'future' ) ;
349
-
350
- sortFragments ( verticalSlide . querySelectorAll ( '.fragment' ) ) ;
351
-
352
- } ) ;
353
-
354
- if ( verticalSlides . length === 0 ) sortFragments ( horizontalSlide . querySelectorAll ( '.fragment' ) ) ;
355
-
356
- } ) ;
357
-
358
- }
359
-
360
336
/**
361
337
* Finds and stores references to DOM elements which are
362
338
* required by the presentation. If a required element is
@@ -1031,67 +1007,6 @@ var Reveal = (function(){
1031
1007
1032
1008
}
1033
1009
1034
- /**
1035
- * Return a sorted fragments list, ordered by an increasing
1036
- * "data-fragment-index" attribute.
1037
- *
1038
- * Fragments will be revealed in the order that they are returned by
1039
- * this function, so you can use the index attributes to control the
1040
- * order of fragment appearance.
1041
- *
1042
- * To maintain a sensible default fragment order, fragments are presumed
1043
- * to be passed in document order. This function adds a "fragment-index"
1044
- * attribute to each node if such an attribute is not already present,
1045
- * and sets that attribute to an integer value which is the position of
1046
- * the fragment within the fragments list.
1047
- */
1048
- function sortFragments ( fragments ) {
1049
-
1050
- fragments = toArray ( fragments ) ;
1051
-
1052
- var ordered = [ ] ,
1053
- unordered = [ ] ,
1054
- sorted = [ ] ;
1055
-
1056
- // Group ordered and unordered elements
1057
- fragments . forEach ( function ( fragment , i ) {
1058
- if ( fragment . hasAttribute ( 'data-fragment-index' ) ) {
1059
- var index = parseInt ( fragment . getAttribute ( 'data-fragment-index' ) , 10 ) ;
1060
-
1061
- if ( ! ordered [ index ] ) {
1062
- ordered [ index ] = [ ] ;
1063
- }
1064
-
1065
- ordered [ index ] . push ( fragment ) ;
1066
- }
1067
- else {
1068
- unordered . push ( [ fragment ] ) ;
1069
- }
1070
- } ) ;
1071
-
1072
- // Append fragments without explicit indices in their
1073
- // DOM order
1074
- ordered = ordered . concat ( unordered ) ;
1075
-
1076
- // Manually count the index up per group to ensure there
1077
- // are no gaps
1078
- var index = 0 ;
1079
-
1080
- // Push all fragments in their sorted order to an array,
1081
- // this flattens the groups
1082
- ordered . forEach ( function ( group ) {
1083
- group . forEach ( function ( fragment ) {
1084
- sorted . push ( fragment ) ;
1085
- fragment . setAttribute ( 'data-fragment-index' , index ) ;
1086
- } ) ;
1087
-
1088
- index ++ ;
1089
- } ) ;
1090
-
1091
- return sorted ;
1092
-
1093
- }
1094
-
1095
1010
/**
1096
1011
* Applies JavaScript-controlled layout rules to the
1097
1012
* presentation.
@@ -1676,13 +1591,39 @@ var Reveal = (function(){
1676
1591
// Re-create the slide backgrounds
1677
1592
createBackgrounds ( ) ;
1678
1593
1594
+ formatSlides ( ) ;
1595
+
1679
1596
updateControls ( ) ;
1680
1597
updateProgress ( ) ;
1681
1598
updateBackground ( true ) ;
1682
1599
updateSlideNumber ( ) ;
1683
1600
1684
1601
}
1685
1602
1603
+ /**
1604
+ * Iterates through and decorates slides DOM elements with
1605
+ * appropriate classes.
1606
+ */
1607
+ function formatSlides ( ) {
1608
+
1609
+ var horizontalSlides = toArray ( document . querySelectorAll ( HORIZONTAL_SLIDES_SELECTOR ) ) ;
1610
+ horizontalSlides . forEach ( function ( horizontalSlide ) {
1611
+
1612
+ var verticalSlides = toArray ( horizontalSlide . querySelectorAll ( 'section' ) ) ;
1613
+ verticalSlides . forEach ( function ( verticalSlide , y ) {
1614
+
1615
+ if ( y > 0 ) verticalSlide . classList . add ( 'future' ) ;
1616
+
1617
+ sortFragments ( verticalSlide . querySelectorAll ( '.fragment' ) ) ;
1618
+
1619
+ } ) ;
1620
+
1621
+ if ( verticalSlides . length === 0 ) sortFragments ( horizontalSlide . querySelectorAll ( '.fragment' ) ) ;
1622
+
1623
+ } ) ;
1624
+
1625
+ }
1626
+
1686
1627
/**
1687
1628
* Updates one dimension of slides by showing the slide
1688
1629
* with the specified index.
@@ -2306,6 +2247,67 @@ var Reveal = (function(){
2306
2247
2307
2248
}
2308
2249
2250
+ /**
2251
+ * Return a sorted fragments list, ordered by an increasing
2252
+ * "data-fragment-index" attribute.
2253
+ *
2254
+ * Fragments will be revealed in the order that they are returned by
2255
+ * this function, so you can use the index attributes to control the
2256
+ * order of fragment appearance.
2257
+ *
2258
+ * To maintain a sensible default fragment order, fragments are presumed
2259
+ * to be passed in document order. This function adds a "fragment-index"
2260
+ * attribute to each node if such an attribute is not already present,
2261
+ * and sets that attribute to an integer value which is the position of
2262
+ * the fragment within the fragments list.
2263
+ */
2264
+ function sortFragments ( fragments ) {
2265
+
2266
+ fragments = toArray ( fragments ) ;
2267
+
2268
+ var ordered = [ ] ,
2269
+ unordered = [ ] ,
2270
+ sorted = [ ] ;
2271
+
2272
+ // Group ordered and unordered elements
2273
+ fragments . forEach ( function ( fragment , i ) {
2274
+ if ( fragment . hasAttribute ( 'data-fragment-index' ) ) {
2275
+ var index = parseInt ( fragment . getAttribute ( 'data-fragment-index' ) , 10 ) ;
2276
+
2277
+ if ( ! ordered [ index ] ) {
2278
+ ordered [ index ] = [ ] ;
2279
+ }
2280
+
2281
+ ordered [ index ] . push ( fragment ) ;
2282
+ }
2283
+ else {
2284
+ unordered . push ( [ fragment ] ) ;
2285
+ }
2286
+ } ) ;
2287
+
2288
+ // Append fragments without explicit indices in their
2289
+ // DOM order
2290
+ ordered = ordered . concat ( unordered ) ;
2291
+
2292
+ // Manually count the index up per group to ensure there
2293
+ // are no gaps
2294
+ var index = 0 ;
2295
+
2296
+ // Push all fragments in their sorted order to an array,
2297
+ // this flattens the groups
2298
+ ordered . forEach ( function ( group ) {
2299
+ group . forEach ( function ( fragment ) {
2300
+ sorted . push ( fragment ) ;
2301
+ fragment . setAttribute ( 'data-fragment-index' , index ) ;
2302
+ } ) ;
2303
+
2304
+ index ++ ;
2305
+ } ) ;
2306
+
2307
+ return sorted ;
2308
+
2309
+ }
2310
+
2309
2311
/**
2310
2312
* Navigate to the specified slide fragment.
2311
2313
*
0 commit comments