Documentation fixes based on code review.
This commit is contained in:
@@ -229,6 +229,31 @@ rootElement.addEventListener( "impress:init", function() {
|
|||||||
impress().init();
|
impress().init();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### .tear()
|
||||||
|
|
||||||
|
Resets the DOM to its original state, as it was before `init()` was called.
|
||||||
|
|
||||||
|
This can be used to "unload" impress.js. A particular use case for this is, if you want to do
|
||||||
|
dynamic changes to the presentation, you can do a teardown, apply changes, then call `init()`
|
||||||
|
again. (In most cases, this will not cause flickering or other visible effects to the user,
|
||||||
|
beyond the intended dynamic changes.)
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```JavaScript
|
||||||
|
impress().tear();
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```JavaScript
|
||||||
|
var rootElement = document.getElementById( "impress" );
|
||||||
|
rootElement.addEventListener( "impress:init", function() {
|
||||||
|
console.log( "Impress init" );
|
||||||
|
});
|
||||||
|
impress().init();
|
||||||
|
```
|
||||||
|
|
||||||
#### .next()
|
#### .next()
|
||||||
|
|
||||||
Navigates to the next step of the presentation using the [`goto()` function](#impressgotostepindexstepelementidstepelement-duration).
|
Navigates to the next step of the presentation using the [`goto()` function](#impressgotostepindexstepelementidstepelement-duration).
|
||||||
|
|||||||
@@ -83,11 +83,11 @@ Putting all of the above together, a skeleton library file will look like:
|
|||||||
var instanceVar = {};
|
var instanceVar = {};
|
||||||
|
|
||||||
// LIBRARY FUNCTIONS
|
// LIBRARY FUNCTIONS
|
||||||
var libararyFunction1 = function () {
|
var libraryFunction1 = function () {
|
||||||
/* ... */
|
/* ... */
|
||||||
};
|
};
|
||||||
|
|
||||||
var libararyFunction2 = function () {
|
var libraryFunction2 = function () {
|
||||||
/* ... */
|
/* ... */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -31,34 +31,43 @@
|
|||||||
recordStartingState( rootId );
|
recordStartingState( rootId );
|
||||||
|
|
||||||
// LIBRARY FUNCTIONS
|
// LIBRARY FUNCTIONS
|
||||||
// Below are definitions of the library functions we return at the end
|
// Definitions of the library functions we return as an object at the end
|
||||||
|
|
||||||
|
// `pushElement` adds a DOM element to the gc stack
|
||||||
var pushElement = function( element ) {
|
var pushElement = function( element ) {
|
||||||
elementList.push( element );
|
elementList.push( element );
|
||||||
};
|
};
|
||||||
|
|
||||||
// Convenience wrapper that combines DOM appendChild with gc.pushElement
|
// `appendChild` is a convenience wrapper that combines DOM appendChild with gc.pushElement
|
||||||
var appendChild = function( parent, element ) {
|
var appendChild = function( parent, element ) {
|
||||||
parent.appendChild( element );
|
parent.appendChild( element );
|
||||||
pushElement( element );
|
pushElement( element );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// `pushEventListener` adds an event listener to the gc stack
|
||||||
var pushEventListener = function( target, type, listenerFunction ) {
|
var pushEventListener = function( target, type, listenerFunction ) {
|
||||||
eventListenerList.push( { target:target, type:type, listener:listenerFunction } );
|
eventListenerList.push( { target:target, type:type, listener:listenerFunction } );
|
||||||
};
|
};
|
||||||
|
|
||||||
// Convenience wrapper that combines DOM addEventListener with gc.pushEventListener
|
// `addEventListener` combines DOM addEventListener with gc.pushEventListener
|
||||||
var addEventListener = function( target, type, listenerFunction ) {
|
var addEventListener = function( target, type, listenerFunction ) {
|
||||||
target.addEventListener( type, listenerFunction );
|
target.addEventListener( type, listenerFunction );
|
||||||
pushEventListener( target, type, listenerFunction );
|
pushEventListener( target, type, listenerFunction );
|
||||||
};
|
};
|
||||||
|
|
||||||
// If the above utilities are not enough, plugins can add their own callback function
|
// `addCallback` If the above utilities are not enough, plugins can add their own callback
|
||||||
// to do arbitrary things.
|
// function to do arbitrary things.
|
||||||
var addCallback = function( callback ) {
|
var addCallback = function( callback ) {
|
||||||
callbackList.push( callback );
|
callbackList.push( callback );
|
||||||
};
|
};
|
||||||
addCallback( function( rootId ) { resetStartingState( rootId ); } );
|
addCallback( function( rootId ) { resetStartingState( rootId ); } );
|
||||||
|
|
||||||
|
// `teardown` will
|
||||||
|
// - execute all callbacks in LIFO order
|
||||||
|
// - call `removeChild` on all DOM elements in LIFO order
|
||||||
|
// - call `removeEventListener` on all event listeners in LIFO order
|
||||||
|
// The goal of a teardown is to return to the same state that the DOM was before
|
||||||
|
// `impress().init()` was called.
|
||||||
var teardown = function() {
|
var teardown = function() {
|
||||||
|
|
||||||
// Execute the callbacks in LIFO order
|
// Execute the callbacks in LIFO order
|
||||||
|
|||||||
Reference in New Issue
Block a user