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.
Clone this wiki locally