diff --git a/index.html b/index.html index a3575b8..3652af6 100755 --- a/index.html +++ b/index.html @@ -69,7 +69,7 @@ - + diff --git a/lib/scroller.js b/lib/scroller.js index 95bb752..9af35f0 100755 --- a/lib/scroller.js +++ b/lib/scroller.js @@ -34,19 +34,25 @@ var MULTITOUCH_RELEASE_THRESHOLD = 100 /*********************************************************************/ +// Scroll handler +// +// This will take two elements a root (container) and a scrolled (first +// child of the container) and implement drag-scrolling of the scrolled +// within the root. +// +// This calls the following callbacks if they are defined. +// - preCallback (unset) +// - scrollCallback (unset) +// - postCallback (set to postScrollCallback) +// +// See scroller.options for configuration. +// +// // XXX add a resonable cancel scheme... // ... something similar to touch threshold but bigger... -// XXX handle multiple touches... -// - timeout on lift to count fingers... // XXX setup basic styles for the contained element... // XXX revise... // XXX test on other devices... -// XXX BUG: on landing a second finger while scrolling the things goes -// haywhire... -// ...check if this is gone... -// XXX add something like a scrollTo that would understand elements as -// well as explicit positions. -// XXX split this into a seporate lib... function makeScrollHandler(root, config){ root = $(root) @@ -112,7 +118,6 @@ function makeScrollHandler(root, config){ // XXX these two are redundant... scrolling = true scroller.state = 'scrolling' - options.enabelStartEvent && root.trigger('userScrollStart') // XXX do we need to pass something to this? options.preCallback && options.preCallback() @@ -178,7 +183,6 @@ function makeScrollHandler(root, config){ prev_y = y prev_t = t - options.enableUserScrollEvent && root.trigger('userScroll') // XXX do we need to pass something to this? options.scrollCallback && options.scrollCallback() } @@ -229,7 +233,6 @@ function makeScrollHandler(root, config){ // XXX stop only if no fingers are touching or let the callback decide... //togglePageDragging('off') // XXX update this with the new data model!!! (see below) - options.enableEndEvent && root.trigger('userScrollEnd', data) if(options.postCallback // XXX revise this.... && options.postCallback(data) === false @@ -285,13 +288,6 @@ function makeScrollHandler(root, config){ eventBounds: 5, */ - // these control weather in-scroll events will get triggered. - // NOTE: these may impact performance, especially the scroll - // event, thus they need to enabled explicitly. - enabelStartEvent: false, - enableUserScrollEvent: false, - enableEndEvent: false, - // callback to be called when the user first touches the screen... preCallback: null, // callback to be called when a scroll step is done... @@ -384,8 +380,11 @@ function makeScrollHandler(root, config){ return scroller } + + // default callback... -// This will provide support for the folowing events on the scroll root +// +// This will provide support for the following events on the scroll root // element: // - scrollCancelled // @@ -405,9 +404,9 @@ function makeScrollHandler(root, config){ // NOTE: data.touches passed to the event is the number of touches // released within the multitouchTimeout. // this differs from what postScrollCallback actually gets in the -// same field when it recieves the object. +// same field when it receives the scroll data object. // XXX add generic snap -// XXX add generic innertial scroll +// XXX add generic inertial scroll // ...see jli.js/animateElementTo for a rough implementation // XXX test multiple touches... function postScrollCallback(data){