Skip to content
davidaurelio edited this page Sep 16, 2010 · 12 revisions

This page is pretty much out of date.

Refactoring

The next big step is to refactor TouchScroll. The reasons/goals for the upcoming versions are:

Better Animation Chaining

The animation consists of three steps: flick, bounce and snap back. Currently, each animation is assigned separately by manipulating the style property of an element and setting -webkit-transition-*. I tested two approaches for transition chaining, each with its own problems:

  • Listening for webkitTransitionEnd events works fine on newer devices, but not on the iPhone 3G. There is a notable delay between the actual end of the transition and the firing of the event (about 0.1s), resulting in a break in the flick/bounce sequence.
  • Chaining with setTimeout works as long as there is no heavy JavaScript executing. In that case, the timeout simply fires later. The results are funny-looking, at best.

The solution is to use @-webkit-keyframes animations. Using keyframes, the whole sequence can be defined as single animation, which will result in gapless chaining.

Open Code Architecture

Currently, the TouchScroll code is enclosed by a closure, effectively preventing playing around with it. This will change. Every utility function and every property will be available as attribute of the global TouchScroll constructor (e.g. TouchScroll._hasTouchSupport).

During the reorganization of the code I will also make the comments consistent and use jsdoc-toolkit.

Events and Stable API

TouchScroll instances will get a set of documented methods and attributes that won’t change. In addition, TouchScroll will fire DOM scroll events on the scroller HTML element, so that your life will be easier.

Bugs/Features

Issues and feature requests will be taken care of following these priorities:

  1. Show stoppers: This involves form handling, although that may never get perfect. Examples are issues #6 and #7.
  2. Visual inconsistencies: This category comprises keeping the scrollbars round and presetting a better easing function for snap back.
  3. General feature requests: Requests like snapping flicks to configured lock points (issue #4) or a grid. I really want to have this feature, but problems have to be solved first.
  4. Platform specific feature requests, like scrolling to top when tapping the title bar.