more cleanup and refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-02-26 15:44:53 +04:00
parent 54f3532edb
commit 1029a087a0
2 changed files with 21 additions and 22 deletions

View File

@ -69,7 +69,7 @@
<script src="lib/scroller.js"></script>
<script src="lib/keyboard.js"></script>
<script src="lib/log.js"></script>
<!--script src="lib/log.js"></script-->
<script src="magazine.js"></script>
<script src="layout.js"></script>

View File

@ -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){